根据mysql中的另一个表更新触发更新表

时间:2014-08-27 11:41:43

标签: mysql sql triggers

我有两张桌子 1。标签
2。 Triger_testing

标记desc
  id int,is_active(tinyint)

Trigger_Testing Desc
  tag_id(int),is_active(tinyint)

我想在标记表格更新上创建一个触发器,用于更新 trigger_testing 表格。因此,如果 tag.is_active设置为0 ,则触发器必须触发并更新trigger_testing表, 设置trigger_testing.is_active = 0其中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附近使用正确的语法 END $$ 第6行的DELIMITER

1 个答案:

答案 0 :(得分: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;