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

时间:2013-11-24 00:52:23

标签: amazon-redshift

Redshift是否支持与以下内容等效的任何声明?

DROP TABLE IF EXISTS tablename

2 个答案:

答案 0 :(得分:23)

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

DROP TABLE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
  

IF EXISTS表示如果指定的表没有的条款   存在,该命令应该不做任何更改并返回一条消息   该表不存在,而不是以错误终止。

     

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

取自online AWS Redshift docs

答案 1 :(得分:15)

见下一个答案;这是过时


支持

DROP TABLE IF EXISTS tablename;
在PostgreSQL 8.2中添加了

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