我试图找出如何做的Postgres正确UPSERT成具有自动增量主要被称为“ID”,并在列“名称”唯一键键列的表。的Upsert Postgres里和自动递增列
的问题是,源和目的表是在2台独立的机器,所以我知道什么是最新的“ID”是对目标表的没有简单的方法。
我现在这样做的方式是将目标表中的数据导入到源表中,检查最高“id”,更新源数据库中的表,然后将upsert插入目标表中,但正如你所看到的,它似乎过于复杂。
什么,我想要做的一个例子是:
源表:
id status name
1 ok John
2 open Monica
目标表:
id status name
. . .
. . .
44 ok David
45 open John
的UPSERT的结果:
id status name
. . .
. . .
44 ok David
45 ok John
46 open Monica
一个简单的UPSERT会有重复键冲突,由于“ID”列。
你为什么不只是插入(状态,名称)没有身份证,因此序列将需要的ID?照顾.. –