INSERT ON DUPLICATE KEY上的触发器

Ang*_*.47 9 mysql triggers

我有一个简单的问题.我有一个触发器将值插入另一个数据库

因此,例如,如果有两个值,并且触发器正在检查值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//
Run Code Online (Sandbox Code Playgroud)

触发剂甚至会引发任何错误.我在B中没有价值观

我的插页是

INSERT INTO a (val) VALUES(`test`) ON DUPLICATE KEY UPDATE dateUpdate=CURRENT_TIMESTAMP
Run Code Online (Sandbox Code Playgroud)

有没有人有任何想法.香港专业教育学院尝试创建两个触发器一个INSERT,另一个UPDATE,我已经改变了AFTER,以BEFORE我的表b仍一无所获.任何想法提前感谢

Ang*_*.47 10

要在诸如的查询上运行的触发器

INSERT INTO table (x, y, z) VALUES('x', 'y', 'z') ON DUPLICATE KEY UPDATE x=VALUES(x);
Run Code Online (Sandbox Code Playgroud)

必须始终在BEFORE INSERT触发器上运行.

  • 我知道这是旧的,但你有证据证明这是真的吗? (3认同)