set @runtime='2008-03-08 18:20:22'
CREATE EVENT update_contest_status
ON SCHEDULE AT TIMESTAMP @runtime
DO update dbs.aaa set timeline=0 where id=1;SHOW PROCESSLIST;将ON SCHEDULE AT TIMESTAMP @runtime
换成ON SCHEDULE AT TIMESTAMP '2008-03-08 18:20:22'
就没有错了,但因为@runtime是一个可变量,必须单拉过来。不知道以上语法错在哪里
CREATE EVENT update_contest_status
ON SCHEDULE AT TIMESTAMP @runtime
DO update dbs.aaa set timeline=0 where id=1;SHOW PROCESSLIST;将ON SCHEDULE AT TIMESTAMP @runtime
换成ON SCHEDULE AT TIMESTAMP '2008-03-08 18:20:22'
就没有错了,但因为@runtime是一个可变量,必须单拉过来。不知道以上语法错在哪里
另外你的这个需求似乎不应该用EVENT,而是应该直接用SQL语句SELECT实现。
创建一个比赛。定义比赛时间。没有达到比赛时间时比赛的属性字段值为‘waitting’
当到比赛时间时将字段值改为‘running’
我创建了一个调度器
set @runtime=0
select contest.startTime into @runtime from contest where contest.status='waitting' and id=14
CREATE EVENT update_contest_status
ON SCHEDULE AT TIMESTAMP @runtime
DO update contest set contest.status='Running';
SHOW PROCESSLIST;报语法错误 不知道以上语法错在哪里
如果一定要这么做,你可以用PREPARE,EXECUTE来实现。
PREPARE stmt1 FROM 'CREATE EVENT update_contest_status ON SCHEDULE AT TIMESTAMP ? DO update aaa set timeline=0 where id=1;'
EXECUTE stmt1 USING @runtime;
还是有执行错误啊
EXECUTE stmt1