Unter Mysql funktioniert ja dieser Befehl, under PG nicht:
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1; UPDATE table SET c=c+1 WHERE a=1;
Ich hab mir daher eine Funktion geschrieben die 5 Werte erhält ( var1 - var5 )
Die insert Funktion läuft wie sie soll, nur der Update geht schief !
Spaltenverweis »e« ist nicht eindeutig at character 65DETAIL: Er könnte sich entweder auf eine PL/pgSQL-Variable oder eine Tabellenspalte beziehen.
Die Funktion:
LOOP
UPDATE table SET “e” = (var5) WHERE “a” = (var1) AND “b” = (var2);
IF found THEN RETURN;
END IF;
BEGIN
INSERT INTO table (a, b, c, d, e)
VALUES ((var1), (var2), (var3), (var4), (var5));
RETURN;
EXCEPTION WHEN unique_violation THEN
END;
END LOOP;
Ich hab seither nichts gefunden, was mir da irgendwie weiterhilft. Es muss doch möglich sein auch im Update die variablen zu benutzen.
Vermute mal mir fehlen irgendwo wieder () oder ’ , hab alle Kombinationen irgendwie auch schon probiert aber seh wohl geade den einen Baum nicht !!