触发更新或删除mysql

时间:2014-10-05 20:45:36

标签: mysql sql triggers

我做了一个触发器:

delimiter |
CREATE TRIGGER update_table2 after UPDATE ON table1
FOR EACH ROW
BEGIN
  //here goes an update action
END |
delimiter ;

现在我想要这个触发器也是:after DELETE ON table1

我试过这样:

delimiter |
CREATE TRIGGER update_table2 after UPDATE or DELETE ON table1
FOR EACH ROW
BEGIN
  //here goes an update action
END |
delimiter ;

但这不起作用。我知道我可以创建一个特定的触发器,但为了易读,我想用这种方式。 希望mySql支持这个。

1 个答案:

答案 0 :(得分:0)

您必须创建两个触发器:( OR子句用于T-SQL和其他)

但是为了避免将来的维护问题,您可以从两个触发器调用存储过程:

delimiter |
CREATE TRIGGER update_table2 after UPDATE ON table1
FOR EACH ROW
BEGIN
  //here goes an update action
  call sp_trigger_table1([params]);
END |
delimiter ;


delimiter |
CREATE TRIGGER update_table2 after DELETE ON table1
FOR EACH ROW
BEGIN
  //here goes an DELETE action
  call sp_trigger_table1([params]);
END |
delimiter ;