Folgendes ist mein Szenario:Verbrauchen Sie die Änderungen/Deltas mit Postgresql
Ich habe 2 Landing-Tabellen source_table und destination_table.
Ich brauche eine Abfrage/Abfragen, die die Zieltabelle mit den neuen Zeilen sowie die aktualisierten Zeilen aus Quellentabelle aktualisiert.
Beispieldaten wäre:
source table:
id name salary
1 P1 10000
2 P2 20000
target table:
id name salary
1 P1 8000
Und die erwartete Ausgabe sein sollte:
target table:
id name salary
1 P1 10000 (salary updated)
2 P2 20000 (new row inserted)
Dies scheint nicht zu funktionieren:
select * from user_source
except
select * from user_target as s
INSERT INTO user_target (id, name, salary)
VALUES (s.id, s.name, s.salary) WHERE id !=s.id
UPDATE user_target
SET name=s.name, salary=s.salary,
WHERE id = s.id
@a_horse_with_no_name Fertig! – vin4yak