Im
AfterInsert/-Update wurde bereits gespeichert und es lässt sich nichts mehr Ändern.
Du kannst dort maximal ein neues UPDATE-Statement auslösen.
--UPDATE Adressen SET Adresse = concat(new.Titel, ' ', new.Vorname, ' ', new.Nachname) WHERE ID = new.ID;
UPDATE Adressen SET Adresse = concat(Titel, ' ', Vorname, ' ', Nachname) WHERE ID = new.ID;
(auf Endlosschleifen achten)
Was du willst, ist wohl im
BeforeInsert/-Update zu besser lösen.
new.Adresse = concat(new.Titel, ' ', new.Vorname, ' ', new.Nachname);
(wird Titel/Vorname/Nachname in einem anderen Trigger geändert, dann auf die Reihenfolge der Trigger achten)
Einige
DBMS kennen auch sowas wie ein
new.Adresse = concat_ws(' ', new.Titel, new.Vorname, new.Nachname);
,
also "
concatenate
with
separator", wo
' '
als Trennzeichen
nur zwischen vorhandene Einträge (nicht NULL) eingefügt wird.
Kennt Firebird Writeable-Views?
Wenn ja, dann keine doppelte Datenhaltung, sondern sich einen View erstellen, der das bei der Abfrage zusammensetzt.