【问题标题】:Mysql event not working in the server. Same code worked in localMysql 事件在服务器中不起作用。相同的代码在本地工作
【发布时间】:2021-10-20 05:56:28
【问题描述】:
DROP EVENT `game_insert`; CREATE DEFINER=`numberBetting_user`@`%` EVENT `game_insert` ON SCHEDULE EVERY 5 MINUTE STARTS '2021-08-18 17:25:29' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN UPDATE `game` set `status` =0 where `status`=1; INSERT INTO `game`(`startTime`, `endTime`,`status`,`betting`) VALUES (now(),NOW() + INTERVAL 5 minute,1,1); END

此事件将每 5 分钟插入一条记录。它在本地(xampp)中运行良好,但在实时服务器中,它没有插入数据。虽然事件调度程序已打开。

一切看起来都很好,但活动并没有发挥作用。

【问题讨论】:

    标签: events mariadb mariadb-10.3


    【解决方案1】:

    解决了这个问题。问题出在我的插入查询中,我缺少非空列的值。在插入查询中添加值后,事件工作正常。谢谢

    【讨论】:

      【解决方案2】:

      像下面这样添加DELIMITER

      DELIMITER $$
      DROP EVENT `game_insert`; 
      CREATE DEFINER=`numberBetting_user`@`%` EVENT `game_insert` ON 
      SCHEDULE EVERY 5 MINUTE STARTS '2021-08-18 17:25:29' ON COMPLETION NOT PRESERVE ENABLE DO 
      BEGIN 
      UPDATE `game` set `status` =0 where `status`=1;
       INSERT INTO `game`(`startTime`, `endTime`,`status`,`betting`) VALUES (now(),NOW() + INTERVAL 5 minute,1,1); 
      END$$
      DELIMITER ;
      

      只有在mysql workbench中才不需要jm,因为是自动添加的

      【讨论】:

      • 现在我收到以下错误消息“无法识别的语句类型。(位置 352 的“END”附近)”
      • 您是复制了文本还是仅在代码中添加了文本?我的代码没有错误
      • “我删除了 DROP EVENT game_insert;”并创建了该事件。但还是不行
      • 它在 mysql 5.7 和 mysql 8.0 的 mdbfiddle.uk/…
      • dbfiddle 不需要任何 DELIMTER 它也会自动添加它
      猜你喜欢
      • 2016-11-27
      • 1970-01-01
      • 2011-11-06
      • 1970-01-01
      • 2014-11-12
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多