mersi, am "rezolvat" asa:
Cod:
delimiter ;
use db1;
delimiter //
CREATE TRIGGER tr_db1 BEFORE INSERT ON db1.sync
FOR EACH ROW BEGIN
INSERT INTO db2.sync values (NEW.id,NEW.name);
INSERT INTO db3.sync values (NEW.id,NEW.name);
END;
//
delimiter ;
use db2;
delimiter //
CREATE TRIGGER tr_db2 BEFORE INSERT ON db2.sync
FOR EACH ROW BEGIN
INSERT INTO db1.sync values (NEW.id,NEW.name);
INSERT INTO db3.sync values (NEW.id,NEW.name);
END;
//
delimiter ;
use db3;
delimiter //
CREATE TRIGGER tr_db3 BEFORE INSERT ON db3.sync
FOR EACH ROW BEGIN
INSERT INTO db1.sync values (NEW.id,NEW.name);
INSERT INTO db2.sync values (NEW.id,NEW.name);
END;
//
delimiter ;
rezultatul e Query OK.
Dar, daca fac un INSERT intr-una din bazele de date, primesc eroarea:
Cod:
INSERT INTO `db1`.`sync` (`id` ,`name`)
VALUES ('1', 'a')
MySQL said: Documentation
#1442 - Can't update table 'sync' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
Presupun ca eroarea o primesc din cauza recursivitatii, presupun ca e si o varianta mai buna, dar pe care nu o stiu. Aveti vreo idee?
Mersi!