如何在不删除现有视图的情况下重新加载表?

时间:2017-10-02 16:03:36

标签: amazon-redshift

我有一个按日期跨越多个表的数据集。

table_name_YYYY_MM_DD

在这些日期范围表中创建了许多VIEWS。但是,每当我需要重新加载表时,我必须删除所有这些视图以删除依赖性约束

DROP TABLE IF EXISTS table_name_YYYY_MM_DD cascade;

有没有办法将表作为事务的一部分重新加载到不需要删除VIEWS的位置。例如,创建一个新表,并交换它们的名称,以便事务保证不需要删除视图。

1 个答案:

答案 0 :(得分:4)

不要掉桌子。相反,截断它:

 truncate table table_name_YYYY_MM_DD

这会删除所有行(快速),但表格仍然存在。所以其他依赖关系不受影响。

之后,您需要将数据重新插入表中,而不是重新创建表。