Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Unterschiedliche Tabellen "Can't update table in stored function/trigger" (https://www.delphipraxis.net/153369-unterschiedliche-tabellen-cant-update-table-stored-function-trigger.html)

Mavarik 30. Jul 2010 10:46

Datenbank: MySQL • Version: 5.X • Zugriff über: SciBit Direkt

Unterschiedliche Tabellen "Can't update table in stored function/trigger"
 
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

Mavarik 30. Jul 2010 11:46

AW: Unterschiedliche Tabellen "Can't update table in stored function/trigger"
 
Habs gefunden...

Die Destionation Tabelle hatte noch nen Trigger den ich vergessen habe zu löschen...

Grüsse Mavarik


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz