更新查询时 MySQL 触发语法错误

标签 mysql triggers

我正在尝试使用 2 个表在 MySQL 上创建触发器。我可以在另一个数据库中执行此操作,但在另一个数据库中调整的相同代码从几个小时开始就给我语法错误!

CREATE TRIGGER `free_video_used` AFTER UPDATE ON `user`     
FOR EACH ROW
IF new.field = 1 THEN
UPDATE free_video SET free_video.used = 1 WHERE free_video.uid = NEW.uid; 
END IF;

正如您很容易理解的那样,在对表“user”进行更新后,另一个表在字段“uid”相等的地方被修改。为什么它不起作用?! 谢谢!!

最佳答案

尝试:

DELIMITER $$

CREATE TRIGGER `free_video_used` AFTER UPDATE ON `user`
FOR EACH ROW
BEGIN
    IF (new.field = 1) THEN
        UPDATE free_video SET free_video.used = 1 WHERE free_video.uid = new.uid;
    END IF;
END$$

DELIMITER ;

关于更新查询时 MySQL 触发语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18110815/

相关文章:

mysql - Amazon Redshift 中的 CREATE TABLE LIKE/AS 中的表权限是否会继承?

mysql - 将 MySQL 触发器移动到 DB2;关键字 NEW 的问题

javascript - 使用 jQuery 或纯 JavaScript 提交对 Instagram 帖子的评论

mysql - MySQL 触发器是否激活其他触发器?

mysql按两列连接查询顺序

mysql - MySQL中的CHECK约束不起作用

mysql - Django 2.0 - iexact 转换为 LIKE 而不是 ILIKE

mysql - 加载数据 MySQL

mysql - 有没有办法在 Mysql 5.1 中实现基于时间的触发器?

wpf - 在 WPF 中的 Window.Resources 中声明 EventTrigger 时不起作用