Ich versuche herauszufinden, wie man eine korrekte Upsert in Postgres in eine Tabelle, die eine Autoinkrement Primärschlüsselspalte namens "ID" und einen eindeutigen Schlüssel in der Spalte "Name" hat .Upsert in Postgres und automatische Inkrementierung Spalte
Das Problem ist, dass die Quell-und Zieltabellen sind auf 2 separaten Maschinen, so habe ich keine einfache Möglichkeit zu wissen, was die neueste "ID" ist in der Zieltabelle.
Die Art, wie ich es gerade mache, importiert die Daten aus der Zieltabelle in die Quellentabelle, sucht nach der höchsten "ID", aktualisiert die Tabelle in der Quelldatenbank und führt dann das Upsert in die Zieltabelle durch, aber wie Sie sehen können, scheint es zu kompliziert.
Ein Beispiel dafür, was ich tun möchte, ist:
Quelltabelle:
id status name
1 ok John
2 open Monica
Zieltabelle:
id status name
. . .
. . .
44 ok David
45 open John
Ergebnis der Upsert:
id status name
. . .
. . .
44 ok David
45 ok John
46 open Monica
Ein einfacher Upsert wird aufgrund der Spalte "id" einen doppelten Schlüsselkonflikt haben.
warum fügst du nicht (status, name) ohne id ein, so würde sequenz sich um id kümmern? .. –