gpt4 book ai didi

mysql - 如何在 MySQL 中创建触发器并在条件下运行

转载 作者:行者123 更新时间:2023-11-30 21:51:20 25 4
gpt4 key购买 nike

我有两个如下所述的表,我想创建一个触发器来更新我的 monitor 表,当相关帖子的 post_status = 'draft' .但是我有两个问题:

我创建了一个查询(也在下方),但我似乎在第 5 行(更新命令所在的位置)返回错误。

第二个问题是如果在我的monitor表中找不到对应的post_id,MySQL将如何处理。

表格:

posts
- id
- name
- post_status

monitor
- id
- post_id
- last_checked

MySQL触发器

CREATE TRIGGER update_tracker AFTER UPDATE ON posts
FOR EACH ROW
BEGIN
IF NEW.post_status = 'draft' THEN
UPDATE monitor SET last_checked = NOW() WHERE post_id = UPDATE.id;
END IF;
END;

SQL Fiddle

最佳答案

不清楚你的意图UPDATE.id引用,但我猜你的意思是NEW.id ,这是生成此触发器的行的 id 列。

生成当前触发器的行的所有列都用 NEW.<column> 引用语法。

如果您的 UPDATE 不匹配 monitor 中的任何行表,它没有影响。就像您运行了条件匹配零行的 UPDATE 一样。

关于mysql - 如何在 MySQL 中创建触发器并在条件下运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47141086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com