Auf Thema antworten

Ich weiß nicht genau, wie SQLite das umsetzt aber vermutlich gibt es eine Tabelle new die du innerhalb des Triggers abfragen kannst. In der steht der Datensatz und nur der Datensatz, der zuletzt neu angelegt oder verändert wurde. Daher solltest du dich unbedingt auf diese System-Tabelle beziehen, nicht auf die Orginal-Tabelle.


Wenn der Wert nicht in der Tabelle "PK_Hoehenpunkt" steht, dann musst du die Quell-Tabelle "Aktenzeichen_662" mit "PK_Hoehenpunkt" joinen. Beide Tabellennamen lassen aber böses erahnen, was dein Datenmodell angeht...


Wenn in einem Update-Statement mehr als ein Datensatz verändert wird kann das zu ungewollten Problemen führen. Erstmal steht dann in new (oder in der gejointen Tabelle) eventuell mehr als ein Aktenzeichen, du müsstest also mehrere Aktenzeichen einfügen oder bekommst den selben Fehler wieder. Eventuell willst du auch mehrere Aktenzeichen loggen. Dafür gibt es dann z.B. FOR EACH ROW

[URL unfurl="true"]https://www.sqlite.org/lang_createtrigger.html#:~:text=The%20trigger%20fires%20once%20for,clause%20of%20the%20UPDATE%20statement.[/URL]

Kann aber auch sein, das es anders geht. In MSSQL, was ich gut kenne, gibt es das FOR EACH ROW nämlich nicht...


Zurück
Oben