PostgreSQL DROP VIEW 如果存在

rus*_*ert 3 sql database postgresql view

在 PostgreSQL 中运行命令时

DROP VIEW IF EXISTS view_name;
Run Code Online (Sandbox Code Playgroud)

我得到回应:

View IF dropped.
Run Code Online (Sandbox Code Playgroud)

谁能解释一下这是什么意思?为什么用“ IF”这个词而不是像这样的回应:View view_name dropped

Dan*_*ité 7

这不是 PostgreSQL 所做的。演示:

postgres=# create view view_name as select 1;
CREATE VIEW

postgres=# drop view if exists view_name;
DROP VIEW

postgres=# \echo :SERVER_VERSION_NUM
110002

postgres=# drop view if exists view_name;
NOTICE:  view "view_name" does not exist, skipping
DROP VIEW
Run Code Online (Sandbox Code Playgroud)

可能您没有正确使用 PostgreSQL,而是使用了针对此操作具有不同语法的 fork。查看结果SELECT version();

  • @russellelbert:如果你在 psql 下运行命令(远程连接到 RDS),你应该得到与我上面的回答相同的结果。我怀疑“查看 IF 已删除”消息来自 SQL 客户端,该客户端试图解释该语句但做得不够好。 (2认同)