You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL事件未触发但事件调度器已启用,求排查创建语句问题

MySQL事件无法触发的语句问题分析及修正

你的事件创建语句存在明确问题,导致无法正常触发,核心问题是DO子句包含多条SQL语句但未用BEGIN...END块包裹,具体修正和说明如下:

问题原因

MySQL事件的DO子句仅支持执行单个SQL语句,若要执行多个调用(比如你的两个存储过程调用),必须将所有语句包裹在BEGIN...END复合语句块中。此外,由于存储过程调用本身包含分号;,需要临时修改MySQL的语句分隔符,避免解析冲突。

修正后的完整创建语句

DELIMITER //

CREATE EVENT POS_Data_Import.alterSalesTransactions
ON SCHEDULE
EVERY 1 DAY
STARTS '2023-01-11 05:50:00'
ON COMPLETION PRESERVE ENABLE
DO
BEGIN
    CALL `POS_Data_Import`.`sp_Alter_CustomerExport`();
    CALL `POS_Data_Import`.`sp_Alter_SalesTransactionImport`();
END //

DELIMITER ;

额外检查要点

  • 确认两个存储过程sp_Alter_CustomerExport和sp_Alter_SalesTransactionImport本身可以单独正常执行,避免存储过程内部逻辑错误导致事件执行失败但无明显提示。
  • 检查MySQL服务器时区是否与你预期的触发时区一致,可通过SELECT @@time_zone;查看,若时区不符可能导致事件触发时间偏差。
  • 验证事件是否成功创建并处于启用状态:执行SHOW EVENTS LIKE 'alterSalesTransactions';,查看Status列是否为ENABLED。

内容的提问来源于stack exchange,提问作者jbigs89

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 20:10:27