我有一个按日期跨越多个表的数据集。
table_name_YYYY_MM_DD
在这些日期范围表中创建了许多VIEWS。但是,每当我需要重新加载表时,我必须删除所有这些视图以删除依赖性约束
DROP TABLE IF EXISTS table_name_YYYY_MM_DD cascade;
有没有办法将表作为事务的一部分重新加载到不需要删除VIEWS的位置。例如,创建一个新表,并交换它们的名称,以便事务保证不需要删除视图。
答案 0 :(得分:4)
不要掉桌子。相反,截断它:
truncate table table_name_YYYY_MM_DD
这会删除所有行(快速),但表格仍然存在。所以其他依赖关系不受影响。
之后,您需要将数据重新插入表中,而不是重新创建表。