Mahlzeit,
ich hab hier ne Mysql-Datenbank in Master-Master-Replikation.
Einmal 5.1.66 und einmal 5.0.51a, beides unter Debian.
Einer der Trigger ist folgender:
DROP TRIGGER IF EXISTS `stock_update`;
DELIMITER |
CREATE TRIGGER `stock_update` AFTER UPDATE ON `STOCKCURRENT`
FOR EACH ROW BEGIN
IF (OLD.UNITS != NEW.UNITS) THEN
INSERT INTO TRIGGER_STOCK SET article=OLD.PRODUCT
, location=OLD.LOCATION
, action='update'
, old_stock=OLD.UNITS
, new_stock=NEW.UNITS;
END IF;
END
|
DELIMITER ;
Wenn ich mit dem PHP-Frontend in der entsprechenden Tabelle unter 5.1.66 eine Änderung vornehme, greift der Trigger und befüllt die passende Tabelle.
Wenn ich mit dem gleichen Frontend auf die Tabelle unter 5.0.51a zugreife, wird der Trigger ignoriert.
Jetzt hab ich zwar gelesen, dass unter 5.0 der Trigger nicht greift, wenn man die NDB-API nutzt, aber das hat ja nur was mit Clustern zu tun, wenn ich das richtig gelesen hab, und ne Replikation ist ja kein Cluster nach meinem Verständnis.
Woran kann es also liegen, dass der Trigger nicht greift? Die Syntax müsste ja passen und die Replikation führt die Trigger auch grundsätzlich (in eine Richtung) aus. Die Replikation selbst funktioniert in beide Richtungen.
Viel Zeit werd ich in dieses Problem eh nicht investieren, da ich noch dieses Jahr diesen Server austausche und dann auch ne neuere Version umstelle, aber mich interessiert der Grund, wieso mein Vorhaben Probleme macht, einfach schon aus Neugierde ;)