2014-10-05 138 views
0

我做了一个触发器:触发更新或删除mysql的

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支持这个。

回答

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 ;