【问题标题】:Trigger to update table based on another table update in mysql根据mysql中的另一个表更新触发更新表
【发布时间】:2014-10-20 23:37:58
【问题描述】:

我有两张表
1.标签
2.Triger_testing

标签描述
id int, is_active (tinyint)

Trigger_Testing Desc
tag_id (int), is_active(tinyint)

我想在 tag 表更新上创建一个触发器,该触发器会更新 trigger_testing 表。因此,如果 tag.is_active 设置为 0,触发器必须触发并更新 trigger_testing 表并 设置 trigger_testing.is_active=0 where trigger_testing.tag_id=tag .id.

我尝试在 MYSQL 中创建触发器,但出现语法异常。谁能帮我解决这个问题。

这里是代码:-

CREATE TRIGGER update_trigger_testing AFTER UPDATE ON tag 
FOR EACH ROW
 BEGIN
    IF NEW.is_active=0 THEN
       UPDATE trigger_testing SET is_Active=0 WHERE tag_id=NEW.id   
    END IF
END$$

DELIMITER;

我得到的错误是:

错误代码:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 'END IF 附近使用的正确语法 结束$$ 第 6 行的 DELIMITER'

【问题讨论】:

    标签: mysql sql triggers


    【解决方案1】:
    CREATE TRIGGER update_trigger_testing AFTER UPDATE ON tag 
    FOR EACH ROW
     BEGIN
        IF NEW.is_active=0 THEN
           UPDATE trigger_testing SET is_Active=0 WHERE tag_id=NEW.id;   
        END IF;
    END;
    

    【讨论】:

    • 感谢您的回答,我也刚刚找到了解决方案,更新语句后我缺少分号;
    猜你喜欢
    • 2012-09-05
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多