Ошибка синтаксиса phppgadmin при создании просмотра
-
01-10-2019 - |
Вопрос
Я пытаюсь создать вид на phppgadmin (postgresql db), который имеет следующее утверждение SQL:
DELETE FROM myTable WHERE myTable.error IS NULL;
Phppgadmin дает мне следующую ошибку:
Ошибка: Синтаксисная ошибка в или рядом с «удалением» на символах 59 в операторе: Создание или замените вид «SCHEMA1». «Удалить пустые ошибки», как удаление из MyTable, где myTable.Error - это ноль;
Насколько я могу сказать, что это оператор SQL действителен, и у меня есть удаление привилегий для таблицы. Это заявление удаления не допускается в представлениях? Любые идеи, что я делаю не так?
Решение
Представления используются для отображения данных только из выбора операторов (обычно, когда выбор сложен). Представления не могут содержать удаления, обновления или вставки.
Возможно, вы хотите функция?
РЕДАКТИРОВАНИЕ: Как отмечает OMG Ponies, вы можете иметь обновленные виды, но вот в том, где вы выпустите удаление на существующее представление, а затем использовать правило, чтобы переписать запрос в качестве удаления.
И, пожалуйста, не оберните вызов функции, чтобы сделать удаление в качестве побочного эффекта в виду. Его неожиданно и Иисус стреляет в щенке каждый раз, когда это происходит.