我创建了一个触发器:
CREATE TRIGGER `update_tb2` AFTER UPDATE ON `table_1` FOR EACH ROW
IF new.parameter = 'param1'
THEN UPDATE table_2 SET table_2.input = '10' WHERE table_2.key = '0';
END IF ;
它按预期工作,当我更新table_1中的任何行时,更新另一个表中key = 0的那一行。 由于两个表中都有一个字段键,我想在第二个表中更新为具有table_1中更新行的相同键的行。我无法弄清楚如何在IF块中使用table_2.key。
答案 0 :(得分:1)
您可以使用新的或旧的关键字(如果您更改键值,您可能想要使用其中一个)。它允许您访问table_1上更新的记录中的所有值:
CREATE TRIGGER `update_tb2` AFTER UPDATE ON `table_1` FOR EACH ROW
IF new.parameter = 'param1'
THEN UPDATE table_2 SET table_2.input = '10' WHERE table_2.key = new.key;
END IF ;
您可以在此fiddle
上查看示例答案 1 :(得分:1)
试试这个:
CREATE TRIGGER `update_tb2` AFTER UPDATE ON `table_1` FOR EACH ROW
IF new.parameter = 'param1'
THEN UPDATE table_2 SET table_2.input = '10' WHERE table_2.key = old.key;
END IF ;