我正在尝试在具有以下 SQL 语句的 PhpPgAdmin (PostGreSQL db) 中创建一个 View :
DELETE FROM myTable WHERE myTable.error IS NULL;
PhpPgAdmin 给我以下错误:
ERROR: syntax error at or near "DELETE" at character 59 In statement: CREATE OR REPLACE VIEW "Schema1"."Delete empty errors" AS DELETE FROM myTable WHERE myTable.error IS NULL;
据我所知,这条 SQL 语句是有效的,而且我对表有删除权限。 View 中不允许使用 DELETE 语句吗?知道我做错了什么吗?
最佳答案
View 仅用于显示来自 SELECT 语句的数据(通常当 SELECT 很复杂时)。 View 不能包含 DELETES、UPDATES 或 INSERTS。
也许你想要一个 function ?
编辑:正如 OMG Ponies 指出的那样,您可以拥有可更新的 View ,但这就是您要对现有 View 发出 DELETE,然后使用 RULE 将查询重写为 DELETE 的地方。
请不要将执行 DELETE 的函数调用包装为 View 中的副作用。这是出乎意料的,每次发生这种情况,耶稣都会射杀一只小狗。
关于sql - PhpPgAdmin 创建 View 时出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3151753/