Вопрос

Я пытаюсь создать вид на phppgadmin (postgresql db), который имеет следующее утверждение SQL:

DELETE FROM myTable WHERE myTable.error IS NULL;

Phppgadmin дает мне следующую ошибку:

Ошибка: Синтаксисная ошибка в или рядом с «удалением» на символах 59 в операторе: Создание или замените вид «SCHEMA1». «Удалить пустые ошибки», как удаление из MyTable, где myTable.Error - это ноль;

Насколько я могу сказать, что это оператор SQL действителен, и у меня есть удаление привилегий для таблицы. Это заявление удаления не допускается в представлениях? Любые идеи, что я делаю не так?

Это было полезно?

Решение

Представления используются для отображения данных только из выбора операторов (обычно, когда выбор сложен). Представления не могут содержать удаления, обновления или вставки.

Возможно, вы хотите функция?

РЕДАКТИРОВАНИЕ: Как отмечает OMG Ponies, вы можете иметь обновленные виды, но вот в том, где вы выпустите удаление на существующее представление, а затем использовать правило, чтобы переписать запрос в качестве удаления.

И, пожалуйста, не оберните вызов функции, чтобы сделать удаление в качестве побочного эффекта в виду. Его неожиданно и Иисус стреляет в щенке каждый раз, когда это происходит.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top