创建View时出现PhpPgAdmin语法错误

时间:2010-06-30 17:24:26

标签: sql postgresql views phppgadmin updatable-views

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

DELETE FROM myTable WHERE myTable.error IS NULL;

PhpPgAdmin给出了以下错误:

  

错误:字符59处的“DELETE”处或附近的语法错误   声明:   创建或替换视图“Schema1”。“删除空错误”AS DELETE FROM myTable WHERE myTable.error IS NULL;

据我所知,这个SQL语句是有效的,我有删除该表的权限。视图中是否不允许使用DELETE语句?我有什么想法吗?

1 个答案:

答案 0 :(得分:4)

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

也许你想要一个function

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

请不要包含函数调用以在视图中执行DELETE作为副作用。每当发生这种情况时,它就会出乎意料地和耶稣射杀一只小狗。