【问题标题】:Run multiple Create Triggers at once in MySQL在 MySQL 中一次运行多个创建触发器
【发布时间】:2014-12-18 14:17:01
【问题描述】:

我希望这又是一个非常愚蠢的分号错位的案例。有没有办法让多个触发器同时运行?在当前状态下,它将运行最后一个 CREATE TRIGGER,仅此而已。

delimiter |

CREATE TRIGGER menu_button_soa_update_time AFTER UPDATE on `menu_button`
FOR EACH ROW
BEGIN
    UPDATE soa_config 
    SET parameterValue = CURRENT_TIMESTAMP
    WHERE parameterName = 'last_menu_update_time';

END
|
delimiter ;

\

delimiter |

CREATE TRIGGER mbi_soa_update_time AFTER UPDATE on `menu_button_info`
FOR EACH ROW
BEGIN
    UPDATE soa_config 
    SET parameterValue = CURRENT_TIMESTAMP
    WHERE parameterName = 'last_menu_update_time';

END
|
delimiter ;

\

delimiter |

CREATE TRIGGER mbs_soa_update_time AFTER UPDATE on `menu_button_size`
FOR EACH ROW
BEGIN
    UPDATE soa_config 
    SET parameterValue = CURRENT_TIMESTAMP
    WHERE parameterName = 'last_menu_update_time';

END
|
delimiter ;

我试过看: Is there a way to create multiple triggers in one script?(仅供参考:我知道链接显示 / 但我收到以下错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/

CREATE TRIGGER mbi_soa_update_time AFTER UPDATE on `menu_button_info`
FOR EAC' at line 1

和其他谷歌经济学。摆脱分隔符似乎没有帮助(我无法运行单个创建触发器)。

【问题讨论】:

    标签: mysql sql database scripting triggers


    【解决方案1】:

    在 mysql 中你可以只依赖分隔符。 我刚刚在我的数据库中尝试过它并且它有效。 但是,请记住,您不能在同一张表上定义多个相同类型的触发器。尝试这样的测试:

    delimiter |
    
    CREATE TRIGGER menu_button_soa_update_time AFTER UPDATE on `menu_button`
    FOR EACH ROW
    BEGIN
        UPDATE soa_config 
        SET parameterValue = CURRENT_TIMESTAMP
        WHERE parameterName = 'last_menu_update_time';
    
    END |
    
    CREATE TRIGGER mbi_soa_update_time AFTER UPDATE on `menu_button_info`
    FOR EACH ROW
    BEGIN
        UPDATE soa_config 
        SET parameterValue = CURRENT_TIMESTAMP
        WHERE parameterName = 'last_menu_update_time';
    
    END |
    
    delimiter ;
    

    【讨论】:

      猜你喜欢
      • 2013-05-30
      • 1970-01-01
      • 1970-01-01
      • 2011-02-03
      • 2016-09-19
      • 2021-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多