我有一个主postgres表,其中包含约束、主键(id)和通常的内容。
然后我有一个临时表,它有相同的列,但没有约束。我将临时表用于批量批量插入。
我不时地想要合并这些表by id,意思是:我希望将临时表中的数据插入主表中,确保:
如何在临时表中的大约一个million+条目中最好地实现这些?
发布于 2015-01-12 10:50:41
下面的答案是基于UPDATES以一种残酷的方式做出的:DELETE + INSERT
ALTER TABLE [main_table] DROP CONSTRAINT ...
ALTER TABLE [main_table] DROP CONSTRAINT ...DELETE FROM [main_table] WHERE id IN (SELECT id FROM [temp_table]);INSERT INTO [main_table] SELECT * FROM [temp_table];ALTER TABLE [main_table] ADD FOREIGN KEY ...
ALTER TABLE [main_table] ADD FOREIGN KEY ...发布于 2015-01-12 10:41:28
您应该使用merge状态:
MERGE INTO main_table main
USING temp_table temp
ON main.Id = temp.Id
WHEN MATCHED THEN
UPDATE SET main.name=temp.name ....
WHEN NOT MATCHED THEN
INSERT VALUES (Id, .....)https://stackoverflow.com/questions/27899855
复制相似问题