Amazon Redshift:删除表(如果存在)

Att*_*lah 13 amazon-redshift

Redshift是否支持与以下相同的任何声明?

DROP TABLE IF EXISTS tablename
Run Code Online (Sandbox Code Playgroud)

mar*_*iro 25

最新版本的Redshift支持此功能:

DROP TABLE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
Run Code Online (Sandbox Code Playgroud)

IF EXISTS子句指示如果指定的表不存在,则该命令不应进行任何更改,并返回该表不存在的消息,而不是以错误终止.

此脚本在编写脚本时很有用,因此如果DROP TABLE针对不存在的表运行,则脚本不会失败.

摘自在线AWS Redshift文档.

  • 很高兴看到他们仍在努力与Pg兼容. (2认同)

Cra*_*ger 15

见下一个答案; 这已经过时了.


支持

DROP TABLE IF EXISTS tablename;
Run Code Online (Sandbox Code Playgroud)

在PostgreSQL 8.2中添加了.RedSpift是ParAccel对8.1的一个非常大修改的分支,据我所知他们已经从较新的版本向后移植了很少的变化.它不太可能支持IF EXISTS; 您可能需要执行目录查询以通过查找确定表是否存在information_schema,然后根据结果决定是否创建表.