Mam proste pytanie. Ive got a spust do wstawienia wartości do innej bazy danychTrigger na INSERT ON DUPLICATE KEY
Tak na przykład, jeśli istnieją dwie wartości, a spust jest sprawdzenie wartości w Table A
i wstawienie do Table B
Więc tutaj jest kod
-- 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//
Wyzwalanie powoduje nawet błędy. I nie mam wartości w B
Moja Insert jest
INSERT INTO a (val) VALUES(`test`) ON DUPLICATE KEY UPDATE dateUpdate=CURRENT_TIMESTAMP
Czy ktoś ma jakieś pomysły. Ive próbowałem tworzenie dwóch wyzwala jeden INSERT
i inny UPDATE
, Ive zmieniony AFTER
do BEFORE
i mój stół b
nadal nie ma nic. Wszelkie pomysły z góry dzięki
Świetne pytanie, a zostaniesz staruszkiem. A co jeśli chcesz pobrać zarówno OLD.val, jak i NEW.val, gdy znajdujesz się w spustu? –