PostgreSQL 删除视图(如果存在)
Posted
技术标签:
【中文标题】PostgreSQL 删除视图(如果存在)【英文标题】:PostgreSQL DROP VIEW IF EXISTS 【发布时间】:2019-05-02 15:59:01 【问题描述】:当我运行命令时在 PostgreSQL 中
DROP VIEW IF EXISTS view_name;
我得到了回应:
View IF dropped.
谁能解释一下这是什么意思?为什么使用“IF
”这个词而不是像这样的回复:View view_name dropped
?
【问题讨论】:
【参考方案1】:这不是 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
可能您使用的不是 PostgreSQL,而是一个对该操作具有不同语法的 fork。查看SELECT version();
的结果。
【讨论】:
谢谢@daniel-vérité -- 这是在 AWS 的 RDS 实例上运行的 PostgreSQL。 SELECT 版本结果是:“x86_64-pc-linux-gnu 上的 PostgreSQL 10.6,由 gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9) 编译,64 位” @russellelbert:如果您在 psql 下运行命令(远程连接到 RDS),您应该得到与我上面的答案相同的结果。我怀疑View IF dropped
消息来自试图解释语句并且做得不够好的SQL 客户端。
Gotchya,这完全有道理。再次感谢您的帮助!以上是关于PostgreSQL 删除视图(如果存在)的主要内容,如果未能解决你的问题,请参考以下文章