Tengo una pregunta simple. Ive consiguió un disparador para insertar los valores en otra base de datosDisparador en INSERTAR EN LLAVE DUPLICADA
Así por ejemplo, si hay dos valores y el gatillo está comprobando el valor de Table A
e insertar en Table B
Así que aquí es el código
-- Trigger DDL Statements
USE `db`;
DELIMITER //
CREATE
DEFINER=CURRENT_USER()
TRIGGER `db`.`AFTER_INSERT_A`
AFTER INSERT ON `db`.`a`
FOR EACH ROW
BEGIN
IF NEW.val!= NULL
THEN
UPDATE b SET dateRemove=CURRENT_TIMESTAMP WHERE val=NEW.val;
INSERT INTO b (val) VALUES(NEW.val) ON DUPLICATE KEY UPDATE dateRemove=NULL, dateUpdate=CURRENT_TIMESTAMP;
END IF;
END//
El disparador dosent incluso arrojar cualquier error. Y no tengo valores en B
Mi inserto está
INSERT INTO a (val) VALUES(`test`) ON DUPLICATE KEY UPDATE dateUpdate=CURRENT_TIMESTAMP
Acaso alguno tiene alguna idea. He intentado crear dos disparadores uno INSERT
y el otro UPDATE
, he cambiado el AFTER
al BEFORE
y mi tabla b
todavía no tiene nada. Cualquier idea gracias de antemano
Gran pregunta, y llegar a ser un viejo. Entonces, ¿qué pasa si quieres obtener Oval.val y NEW.val mientras estás dentro del gatillo? –