Mysql 事件在服务器中不起作用。相同的代码在本地工作
Posted
技术标签:
【中文标题】Mysql 事件在服务器中不起作用。相同的代码在本地工作【英文标题】:Mysql event not working in the server. Same code worked in local 【发布时间】: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)中运行良好,但在实时服务器中,它没有插入数据。虽然事件调度程序已打开。
一切看起来都很好,但活动并没有发挥作用。
【问题讨论】:
【参考方案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 EVENTgame_insert
;”并创建了该事件。但还是不行
它在 mysql 5.7 和 mysql 8.0 的 mdbfiddle.uk/…
dbfiddle 不需要任何 DELIMTER 它也会自动添加它以上是关于Mysql 事件在服务器中不起作用。相同的代码在本地工作的主要内容,如果未能解决你的问题,请参考以下文章
UITextField 触摸事件在 UIScrollView 中不起作用
通过使用域名 URL,服务器发送的事件在 android 中不起作用