【发布时间】:2014-02-11 17:41:01
【问题描述】:
我想将一些数据从一个表移动到另一个表(可能使用不同的架构)。想到的直截了当的解决方案是 -
start a transaction with serializable isolation level;
INSERT INTO dest_table SELECT data FROM orig_table,other-tables WHERE <condition>;
DELETE FROM orig_table USING other-tables WHERE <condition>;
COMMIT;
现在,如果数据量很大,而 <condition> 的计算成本很高怎么办?在 PostgreSQL 中,规则或存储过程可用于动态删除数据,只评估一次条件。哪种解决方案更好?还有其他选择吗?
【问题讨论】:
标签: sql postgresql