mysql - 触发 INSERT ON DUPLICATE KEY

标签 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//

触发器甚至会抛出任何错误。我在 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 触发器上运行。

关于mysql - 触发 INSERT ON DUPLICATE KEY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3162767/

相关文章:

php - 更新个人详细信息 PHP 脚本

mysql - 触发表更改

jquery - 如何在Jquery中检测div上的长按?

mysql - 从两个表中触发乘法

php - 转换为准备好的语句 - 如何回显查询结果

mysql - MySql 中的全文索引可加快 "contains"搜索速度

mysql - SELECT 和其他值的 INSERT 结果

简单的两个表连接查询的 MySQL 性能问题

postgresql - Postgres 触发器和生产者(关系的列 "new"不存在)

mysql - 如何编写一个接一个地更新两个表的触发器