Klassiker : Insert if not exists...
Verfasst: Mi 18. Apr 2018, 17:55
Hallo Zusammen,
in einem anderen Forum (Lazarus/Object Pascal) bin ich in eine Diskussion eingestiegen zu der Frage, wie man einen Datensatz nur dann einfügt wenn dieser noch nicht existiert. Alles in einem DSQL Statement
Eine Syntax im einem if statement funktioniert nur in PSQL, folgende Vorschläge wurden gemacht :
und mein Vorschlag :
wobei aber immer ein update ausgeführt wird falls der Datensatz schon existiert,
Es ginge auch noch über ein EXECUTE BLOCK und einem darin enthaltenen PSQL statement habe aber so etwas noch nicht benutzt.
Bietet Firebird da noch andere Lösungen für an?
Gruß Ulrich
in einem anderen Forum (Lazarus/Object Pascal) bin ich in eine Diskussion eingestiegen zu der Frage, wie man einen Datensatz nur dann einfügt wenn dieser noch nicht existiert. Alles in einem DSQL Statement

Eine Syntax im einem if statement funktioniert nur in PSQL, folgende Vorschläge wurden gemacht :
Code: Alles auswählen
INSERT INTO Tablename (Fieldname1l, Fieldname2)
SELECT :Fieldname1l, :Fieldname2
FROM rdb$database
WHERE NOT EXISTS (SELECT 1 FROM Tablename WHERE Fieldname1l = :Fieldname1l)
Code: Alles auswählen
update or insert into Tablename(Fieldname1l, Fieldname2) values ( :Fieldname1l, :Fieldname2) matching (:Fieldname1l)
Es ginge auch noch über ein EXECUTE BLOCK und einem darin enthaltenen PSQL statement habe aber so etwas noch nicht benutzt.
Bietet Firebird da noch andere Lösungen für an?
Gruß Ulrich