Einzelnen Beitrag anzeigen

Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.130 Beiträge
 
Delphi 10.3 Rio
 
#1

Unterschiedliche Tabellen "Can't update table in stored function/trigger"

  Alt 30. Jul 2010, 10:46
Datenbank: MySQL • Version: 5.X • Zugriff über: SciBit Direkt
Hallo MySQL Freunde!

Ich habe 2 Tabellen... Nennen wir diese:

Source und Destination

Ein After Insert Trigger für Source erzeugt je nach Datensatz
3-8 Einträge in Destination. // Das Funktioniert prima...
In jedem Datensatz von Destination wird das Source ID gespeichert.

Wenn ich jetzt ein Update in Source aufrufen/aufrufen will

Soll ein BEFORE UPDATE Trigger erst die Einträge löschen.

SQL-Code:
CREATE TRIGGER BUSource BEFORE UPDATE ON Source
FOR EACH ROW
BEGIN
  DELETE FROM Destination WHERE (Woher_ID=OLD.ID);
END $$
und dann ein AFTER UPDATE Trigger die neuen erzeugen...

SQL-Code:
CREATE TRIGGER AUSource AFTER UPDATE ON Source
FOR EACH ROW
BEGIN
  Bla bla bla ganz viel genau wie im Insert Trigger...
  Zahlreiche Inserts auf Destination
END $$
Obwohl ich NIE auf die Source Table die den Trigger hat Zugreife erhalte ich diese Fehlermeldung

•Error: 1442 SQLSTATE: HY000 (ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG)
Message: Can't update table '%s' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.


Ideen?

Grüsse Mavarik

Geändert von mkinzler (30. Jul 2010 um 10:48 Uhr) Grund: Code-Tag durch SQL-Tag ersetzt
  Mit Zitat antworten Zitat