mysql - mysql触发器定义中的if语句

标签 mysql triggers

我在以下代码中遇到错误。

CREATE TRIGGER au_auction AFTER UPDATE ON dmtable 
    FOR EACH ROW
    BEGIN
        IF NEW.bid > OLD.bid THEN
            INSERT INTO auction_log(auction,id,ts,item,bid) VALUES('update',NEW.id,NEW.ts,NEW.item,NEW.bid);
        END IF;

    END;

问题出在语法层面...您能提供更多信息吗?

这是错误消息:

Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5

MySql 5.x

谢谢

最佳答案

DELIMITER //
CREATE TRIGGER au_auction AFTER UPDATE ON dmtable 
    FOR EACH ROW
    BEGIN
        IF NEW.bid > OLD.bid THEN
            INSERT INTO auction_log(auction,id,ts,item,bid)
                           VALUES('update', NEW.id, NEW.ts, NEW.item, NEW.bid);
        END IF;

    END//
DELIMITER ;

阅读documentation about creating triggers ,这些例子很有帮助。

关于mysql - mysql触发器定义中的if语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11601493/

相关文章:

php - 我的脚本有什么问题吗?

c++ - 如何解决make mysql-connector-c++-1.1.7错误

mysql - 遍历 MySQL 触发器中的列

database - 使用 SQLite 触发器强制显式设置列值

mysql - 如果 INSERT 上未设置字段,则触发器会表现得很奇怪

mysql - 使用 Knex.js 插入多行

php - 如何通过导航回 php 中的引用页面来限制更新或多次插入?

MySQL 选择不在分组中的行

mysql - 如果列已使用特定字符串更新,如何添加触发器

triggers - Zabbix - timeleft 和预测触发器不起作用