ukulele
Datenbank-Guru
- Beiträge
- 5.334
Hallo Forum, ich hoffe ich finde hier dauerhaft Unterstützung zu den unzähligen SQL Merkwürdigkeiten in meinem Dasein .
Folgendes Szenario (stark vereinfacht):
Tabellen:
A, B, C
Spalten in A:
insert_value_in_B varchar NULL
insert_value_in_C varchar NULL
Spalten in B:
value_in_B varchar NOT NULL
Spalten in C:
value_in_C varchar NOT NULL
Trigger:
trigger_a
trigger_b
Trigger a und b haben die selbe Funktionsweise.
Erstelle ich jetzt einen neuen Eintrag mit einem Wert in insert_value_in_B trägt Trigger B diesen Wert in der Tabelle B ein. Trigger A und Tabelle A bleiben untätig. Versuche ich nur in A einen Eintrag zu schreiben reagiert Trigger B und versucht einen NULL-Wert in Tabelle B zu schreiben. Die Trigger sind wie gesagt vom Aufbau her nahezu identisch. Ich habe nun noch eine IF Abfrage auf NULL Werte in B eingebaut, klappt auch, aber das ganze ergibt für mich keinen Sinn. Hat jemand eine Idee?
Folgendes Szenario (stark vereinfacht):
Tabellen:
A, B, C
Spalten in A:
insert_value_in_B varchar NULL
insert_value_in_C varchar NULL
Spalten in B:
value_in_B varchar NOT NULL
Spalten in C:
value_in_C varchar NOT NULL
Trigger:
trigger_a
trigger_b
Trigger a und b haben die selbe Funktionsweise.
PHP:
AFTER UPDATE, INSERT
AS
IF UPDATE(insert_value_in_X)
BEGIN
Schreibe insert_value_in_X in Tabelle X
END
Erstelle ich jetzt einen neuen Eintrag mit einem Wert in insert_value_in_B trägt Trigger B diesen Wert in der Tabelle B ein. Trigger A und Tabelle A bleiben untätig. Versuche ich nur in A einen Eintrag zu schreiben reagiert Trigger B und versucht einen NULL-Wert in Tabelle B zu schreiben. Die Trigger sind wie gesagt vom Aufbau her nahezu identisch. Ich habe nun noch eine IF Abfrage auf NULL Werte in B eingebaut, klappt auch, aber das ganze ergibt für mich keinen Sinn. Hat jemand eine Idee?