Ho una domanda semplice. Ive ha ottenuto un trigger per inserire i valori in un altro databaseTrigger su INSERT ON DUPLICATE KEY
Così, per esempio, se ci sono due valori e il grilletto sta controllando il valore in Table A
e l'inserimento in Table B
ecco il codice
-- 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//
Il dosatore di trigger genera persino errori. E non ho valori in B
mio inserimento è
INSERT INTO a (val) VALUES(`test`) ON DUPLICATE KEY UPDATE dateUpdate=CURRENT_TIMESTAMP
Ha uno ha qualche idea. Ho provato a creare due trigger uno INSERT
e l'altro UPDATE
, Ive ha cambiato il AFTER
a BEFORE
e il mio tavolo b
non ha ancora ottenuto nulla. Tutte le idee grazie in anticipo
Grande domanda, e diventare un vecchio. Quindi, cosa succede se si desidera ottenere sia OLD.val e NEW.val mentre si trova all'interno del trigger? –