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
![Lächeln :-)](./images/smilies/icon_e_smile.gif)
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