MySQL触发if子句的问题

时间:2013-08-05 15:01:45

标签: mysql

尝试创建触发器时遇到问题。我有table_1和table_2,table_1上的update事件应该更新使用where子句标识的table_2中的一行:

CREATE DEFINER=`root`@`localhost` TRIGGER `update_table_2` AFTER UPDATE ON `table_1` FOR EACH ROW BEGIN

   IF table_1.key=0 THEN
      UPDATE table_2 SET table_2.value='10' WHERE table_2.key='2';   
   END IF;

END

我的问题是什么?! 感谢

1 个答案:

答案 0 :(得分:1)

在触发器中,您应该使用oldnew关键字来引用已更新的记录(分别是旧值和新值)。

在你的情况下,你应该这样做:

   IF new.key=0 THEN
      UPDATE table_2 SET table_2.value='10' WHERE table_2.key='2';   
   END IF;