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