Laufende Nummer Primary Key und Trigger
- Dieses Thema hat 0 Antworten und 1 Teilnehmer, und wurde zuletzt aktualisiert vor 14 Jahre, 4 Monaten von
Anonym.
-
AuthorPosts
-
6. Mai 2009 um 13:52 Uhr #4035
AnonymInaktivIch habe eine Frage zu der Aktualiserung von primary keys per Trigger.
Meine Tabelle Tab hat als Primary Key das Feld "Feld1" vom Typ INT.
Über folgenden Trigger versuche ich Daten in die Tabelle einzufügen und den PK automatisch zu belegen:
CREATE TRIGGER TAB_INSERT NO CASCADE BEFORE I NSERT ON Tab REFERENCING NEW AS NNN FOR EACH ROW MODE DB2SQL SET NNN.Feld1 = (S ELECT COALESCE(MAX(Feld1),0) + 1
FROM Tab)
Das Ganze funktioniert auch recht gut, solange ich einzelne I NSERTS mache.
I NSERT INTO TAB VALUES (0, usw.) // 0 ist ein Dummy-Wert für Feld1
Sobald ich mein INSERT über ein SELECT befülle, klappt es nicht mehr:
I NSERT into TAB VALUES (S ELECT 0, usw. FROM TAB2 join TAB3) // 0 ist wieder der Dummy-Wert für Feld1
Der S ELECT bringt mehrere Zeilen als Ergebnis und dies geht schief.
Mache ich einen Fehler beim Trigger oder geht sowas grundsätzlich nicht?
Ich dachte die Optionen BEFORE I NSERT und FOR EACH ROW beim Trigger müssten ausreichen.
-
AuthorPosts
You must be logged in to reply to this topic.