Nicht triggernde Datenbanktrigger?

Hallo Zusammen,

Shopware 5.6.6
MariaDB 10.4.x

Ich triggere aus der Tabelle s_order_details eingefügte Daten wie Bestellnummer, Artikelnummer, Anzahl in eine zweite Tabelle zu schreiben.
Der Sinn der Übung ist später so einen schnellen Abgleich von Beständen zu realisieren.

Es funktioniert soweit, bis auf eine Sache.
Ich arbeite mit insert und delete Triggern.
Shopware legt bei einer Bestellung die Daten dafür zwei Mal per insert ab zu unterschiedlichen Zeitpunkten des Bestellvorgangs und löscht nach Bestellabschluss den nicht mehr benötigten Eintrag. Das sieht man auch in s_order_details, wo die IDs nicht fortlaufend sind.
Im general_log der MariaDB sehe ich, dass der insert in die zweite Tabelle funktioniert so wie auch am Ergebnis.
Der Löschen Trigger dagegen wird nicht ausgeführt.
Mache ich das manuell in z.B. phpmyadmin triggert der Trigger und tut, was er soll.
Auch wenn ich im Backend eine Bestellung lösche, reagiert derselbe Trigger.

Hat da jemand eine Idee oder kennt das Problem?
 

CREATE TRIGGER `sync_delete` BEFORE DELETE ON `s_order_details`
 FOR EACH ROW BEGIN
	delete from GB_trigger where orderID = OLD.orderID;
END

BEFORE oder AFTER macht keinen Unterschied.

Gruß

Gunnar

Hallo Gunnar,

hier muss ich zugeben das ich sehr lange nicht mehr mit MariaDB gearbeitet habe. Aus der Erinnerung würde ich zwei Dinge empfehlen:

  1. Alias für die Tabellen verwenden

  2. Löse bewusst eine Fehler aus. Diese Info hat mir anno dazumal sehr geholfen: https://mariadb.com/kb/en/trigger-overview/#trigger-errors

Beste Grüße

Magnum