1

我正在尝试在 PhpPgAdmin (PostGreSQL db) 中创建一个具有以下 SQL 语句的视图:

DELETE FROM myTable WHERE myTable.error IS NULL;

PhpPgAdmin 给我以下错误:

错误:在字符 59 处或附近的“DELETE”处出现语法错误 在语句中:CREATE OR REPLACE VIEW “Schema1”。“删除空错误” AS DELETE FROM myTable WHERE myTable.error IS NULL;

据我所知,这条 SQL 语句是有效的,并且我拥有该表的删除权限。视图中不允许使用 DELETE 语句吗?任何想法我做错了什么?

4

1 回答 1

4

视图仅用于显示来自 SELECT 语句的数据(通常在 SELECT 很复杂时)。视图不能包含 DELETES、UPDATES 或 INSERTS。

也许你想要一个功能

编辑:正如 OMG Ponies 指出的那样,您可以拥有可更新的视图,但这就是您可以向现有视图发出 DELETE,然后使用 RULE 将查询重写为 DELETE 的地方。

请不要包装函数调用来执行 DELETE 作为视图中的副作用。这是出乎意料的,每次发生这种情况时,耶稣都会射杀一只小狗。

于 2010-06-30T17:27:43.617 回答