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 =  '0';    
END IF ;

它按预期工作,当我更新 table_1 中的任何行时,另一个表中 key=0 的行将被更新。由于两个表中都有一个字段键,我想在第二个表中更新为与 table_1 中更新的行具有相同键的行。我不知道如何在 IF 块中使用 table_2.key。

4

2 回答 2

1

您可以使用 new 或 old 关键字(如果您更改键值,您可能需要使用其中一个)。它让您可以访问 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 ;

你可以在这个小提琴上看到一个例子

于 2013-08-05T16:55:06.820 回答
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 ;
于 2013-08-05T16:55:39.643 回答