【问题标题】:Mysql Trigger IF target field changedMysql 触发 IF 目标字段已更改
【发布时间】:2012-04-14 18:37:10
【问题描述】:

我想仅在某些字段已被修改时触发 UPDATE 触发器。 是否可以使用 if 语句?执行特定查询。

示例(如图所示不工作):

DROP TRIGGER IF EXISTS `catch_mytable_update`//
CREATE TRIGGER `catch_mytable_update` AFTER UPDATE ON `mytable`
 FOR EACH ROW BEGIN

IF (old.name != new.name) THEN

DELETE FROM trigger WHERE tablename='mytable' AND rowid = new.id;
INSERT INTO trigger (tablename, rowid, cmd, cmduser, time) VALUES('mytable', new.id, 'UPDATE', CURRENT_USER(), NOW());

ENDIF//

END//

分隔符://

【问题讨论】:

    标签: php mysql if-statement triggers conditional-statements


    【解决方案1】:

    尝试改变:

        IF (name.old != name.new) THEN
    

    到:

        IF old.name != new.name THEN
    

    【讨论】:

    • 对不起,是的。这是我输入问题时的拼写错误。我尝试了更改,但仍然出现错误:(
    • 我们需要知道 MySQL 错误代码或消息以便我们提供帮助 :)
    • 这是我在运行上述查询时遇到的以下错误:#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在第 9 行的 '' 附近使用
    • 另外,名为'trigger'的表实际用于什么?
    • 表触发器用于监控多个表中发生的触发器。此查询在没有 IF 语句的情况下已经可以正常工作。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-30
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 2013-10-28
    • 2012-05-09
    相关资源
    最近更新 更多