1

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

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

我有什么问题?!谢谢

4

1 回答 1

1

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

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

   IF new.key=0 THEN
      UPDATE table_2 SET table_2.value='10' WHERE table_2.key='2';   
   END IF;
于 2013-08-05T15:07:41.403 回答