MERGE-syntax verwendet, um UPSERT oder INSERT on duplicate UPDATE

Also ich komme aus der MySQL, wo ich das tun könnte INSERT on DUPLICATE UPDATE:

INSERT INTO table (a,b,c) 
VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;

Aber jetzt bin ich mit PostgreSQL und es gibt Bemühungen zum hinzufügen von einem einfachen Beispiel: Funktionalität, sieht aus wie eine ZUSAMMENFÜHRUNG funktionieren könnte, für das, was ich gerne hätte, aber wollte sehen, ob dies ist die optimale syntax. Beispiel Syntax 1, Ich habe auch gesehen, diese aber nicht verstehen, wie das umzusetzen. Ich habe dies noch nicht ausprobiert, weil ich dachte, MERGE verwendet wurde für die Zusammenführung der Daten aus Tabelle1 in Tabelle2 oder würde so etwas funktionieren?

MERGE
INTO    table
USING   table
ON      c = 1
WHEN MATCHED THEN
UPDATE
SET     c=c+1
WHEN NOT MATCHED THEN
INSERT  (a,b,c)
VALUES  (1,2,3)

Irgendwelche anderen Vorschläge?

InformationsquelleAutor Phill Pafford | 2010-12-29

Schreibe einen Kommentar