【发布时间】:2016-02-03 22:05:32
【问题描述】:
我有两个具有完全相同列的表。第一个用于生产,Web 应用程序(django)从中检索对象以显示在网页上。 我正在使用 Python 脚本将对象添加到第二个。 脚本完成后,我需要将 table-1 中的所有行替换为 table-2 中的行。现在我正在使用这样的东西:
TRUNCATE table-1;
INSERT INTO table-1 (columns) SELECT columns FROM table-2;
TRUNCATE table-2;
VACUUM FULL;
问题是它花费了太长时间,并且在 TRUNCATE table-1 之后网站在 INSERT 完成之前毫无用处。解决这个问题的最佳方法是什么?
【问题讨论】:
-
对 table_1 使用
delete而不是truncate。这将允许在您提交之前对table_1进行读取访问。 -
添加
where语句,假设插入太长,因为表很大
标签: sql postgresql