我在创建EVENT时遇到问题.
我有一张'articoli'桌子.有一个articoli.titolo字段varchar(255),当我尝试创建这样的事件时:
CREATE EVENT inser_value
ON SCHEDULE every 1 day
DO INSERT INTO articoli (titolo) VALUES ('my_value');
Run Code Online (Sandbox Code Playgroud)
这是mysqlerror的输出
错误1064(42000):您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以获得正确的语法,以便每隔1天使用一次'EVENT inser_value ON SCHEDULE DO INSERT INTO articoli(titolo)VALUE'在第1行
如果您的MySQL版本不支持Event模块,或者它未启动,则会出现此错误.
请检查这两个.
本文讨论如何配置MySQL事件调度程序.
启动MySQL的事件调度程序
MySQL事件由特殊事件调度程序线程执行.它默认是禁用的,因此使用以下MySQL命令可以确定它是否正在运行:
SHOW PROCESSLIST;
Run Code Online (Sandbox Code Playgroud)
如果调度程序正在运行,则至少会显示两行,其中一行的用户字段设置为event_scheduler.如果仅返回一行,则禁用调度程序并且不会运行事件.
使用命令行选项启动MySQL时,--event-scheduler=ON或者setting event_scheduler=ON在MySQL配置文件(Windows上的my.cnf或my.ini)中,可以确保调度程序启动.
或者,您可以从MySQL命令行启动调度程序:
SET GLOBAL event_scheduler = ON;
Run Code Online (Sandbox Code Playgroud)