【问题标题】:PostgreSQL DROP VIEW IF EXISTSPostgreSQL 删除视图(如果存在)
【发布时间】:2019-05-02 15:59:01
【问题描述】:

当我运行命令时在 PostgreSQL 中

DROP VIEW IF EXISTS view_name;

我得到了回应:

View IF dropped.

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

【问题讨论】:

    标签: sql database postgresql view


    【解决方案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,这完全有道理。再次感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2016-07-08
    • 1970-01-01
    • 2017-03-21
    • 2020-01-11
    • 2012-08-18
    • 2012-06-06
    • 2013-02-25
    • 2015-01-23
    相关资源
    最近更新 更多