У меня есть простой вопрос. У меня есть триггер для вставки значений в другую Базу данных
Так, например, если существует два значения, и триггер регистрирует значение Table A
и вставка в Table B
Таким образом, вот код
-- 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//
Триггерный преподаватель даже бросает любые ошибки. И у меня нет значений в B
Моя Вставка
INSERT INTO a (val) VALUES(`test`) ON DUPLICATE KEY UPDATE dateUpdate=CURRENT_TIMESTAMP
Имеет любой получил любые идеи. Я попытался создать два триггера один INSERT
и другой UPDATE
, Я изменился AFTER
кому: BEFORE
и моя таблица b
все еще ничего не получил. Любые идеи заранее спасибо
Триггер, запускаемый на запрос типа
INSERT INTO table (x, y, z) VALUES('x', 'y', 'z') ON DUPLICATE KEY UPDATE x=VALUES(x);
всегда должен запускаться на BEFORE INSERT
триггер.
Возможно, вместо
NEW.val!= NULL
нужно
NEW.val IS NOT NULL
Значение никогда не равно null, и оно никогда не равно null.