红移。在条件下删除表

Posted

技术标签:

【中文标题】红移。在条件下删除表【英文标题】:Redshift. drop table under condition 【发布时间】:2018-12-06 13:57:51 【问题描述】:

我有将数据加载到某个红移表 (tbl1_tmp) 的 ETL 过程。 现在,如果加载了数据(计数 > 0),我想删除另一个表(tbl1)并重命名 tmp1_tmp --> tbl1。

我可以编写一些 SQL 代码来允许我在满足特定条件下删除表吗? (在我的情况下计数 > 0)

谢谢

【问题讨论】:

为什么需要这个条件?这是否意味着您的 ETL 过程有时会加载空表,在这种情况下您不想继续?无论如何 - 在 sql 中,不能混合 DDL 语句 (DROP/CREATE TABLE) 和查询 (SELECT)。您从哪里运行查询?如果它是 bash 或 python 脚本,那么你可以在那里设置条件。 @botchniaque 空表只是示例条件。我的 ETL 有时会出错,我不想在这种情况下实际使用损坏的数据。我在 AWS 数据管道中运行 ETL 【参考方案1】:

Amazon Redshift 基本上运行 SQL。它本身不是 ETL 工具。

您需要编写一些代码来检查表的内容,然后,如果需要,发出DROP TABLE 命令。没有“在某些情况下删除表”的能力。

【讨论】:

以上是关于红移。在条件下删除表的主要内容,如果未能解决你的问题,请参考以下文章

如果 Redshift 中存在表,则从表中删除行,否则忽略删除

mysql关联表删除数据

aerospike数据库怎么删除表

删除表的记录的sql命令是啥?

根据条件VBA删除表行

TRUNCATE 删除表,无法回退。默认选择为整个表的内容,所以不能加条件。