在事件调度器中使用事务的MYSQL
我试图在MYSQL的预定事件中使用一个事务,它只是不包括整个事务,只包括启动事务;部分 我尝试过包装我的代码,删除分号,设置autocommit=0,并以各种方式对代码进行消隐处理,但都没有效果。我只是想知道如何运行一个完成截断表的截断和重新填充的事务在事件调度器中使用事务的MYSQL,mysql,events,transactions,scheduler,Mysql,Events,Transactions,Scheduler,我试图在MYSQL的预定事件中使用一个事务,它只是不包括整个事务,只包括启动事务;部分 我尝试过包装我的代码,删除分号,设置autocommit=0,并以各种方式对代码进行消隐处理,但都没有效果。我只是想知道如何运行一个完成截断表的截断和重新填充的事务 CREATE EVENT IF NOT EXISTS monitored_15min ON SCHEDULE EVERY 1 MINUTE STARTS CURRENT_TIMESTAMP DO START TRANSACTION; TRUN
CREATE EVENT IF NOT EXISTS monitored_15min
ON SCHEDULE EVERY 1 MINUTE
STARTS CURRENT_TIMESTAMP
DO
START TRANSACTION;
TRUNCATE dashboard.monitored;
INSERT INTO dashboard.monitored (brand,product,Status,old_Price,Current_Price,Product_Title)
SELECT
amp.brand,
amp.product,
amp.Status,
amp.old_Price,
amp.Current_Price,
Product_Title
FROM results.amp;
COMMIT;
我预计每分钟此查询都会删除dashboard.monitored的当前值,并从results.amp插入信息,但除了事件中的整个查询之外,不会发生任何事情。正如您所观察到的,事件只包含启动事务的代码;(将在您的系统上永远运行,直到您删除或禁用)。该代码似乎只运行了一次,但这只是因为它已通过与存储例程一样,您可以在DO子句中使用复合语句语法,方法是在本例中使用BEGIN和END关键字“()
delimiter $$
CREATE EVENT IF NOT EXISTS monitored_15min
ON SCHEDULE EVERY 1 MINUTE
STARTS CURRENT_TIMESTAMP
DO
begin
START TRANSACTION;
TRUNCATE dashboard.monitored;
INSERT INTO dashboard.monitored (brand,product,Status,old_Price,Current_Price,Product_Title)
SELECT
amp.brand,
amp.product,
amp.Status,
amp.old_Price,
amp.Current_Price,
Product_Title
FROM results.amp;
COMMIT;
end $$
delimiter ;
有关更多信息,请参阅手册,并确保已启用事件计划程序。因为您已观察到事件仅包含启动事务的代码;(将在您的系统上永远运行,直到您删除或禁用)。该代码似乎只运行了一次,但这只是因为它已通过与存储例程一样,您可以在DO子句中使用复合语句语法,方法是在本例中使用BEGIN和END关键字“()
delimiter $$
CREATE EVENT IF NOT EXISTS monitored_15min
ON SCHEDULE EVERY 1 MINUTE
STARTS CURRENT_TIMESTAMP
DO
begin
START TRANSACTION;
TRUNCATE dashboard.monitored;
INSERT INTO dashboard.monitored (brand,product,Status,old_Price,Current_Price,Product_Title)
SELECT
amp.brand,
amp.product,
amp.Status,
amp.old_Price,
amp.Current_Price,
Product_Title
FROM results.amp;
COMMIT;
end $$
delimiter ;
有关更多信息,请参阅手册,并确保已启用事件计划程序。Check.Check.Hey p.Salmon,分隔符开关合并所有事务代码,不允许其丢失,这就成功了。此外,活动的开始和结束也是另一个因素。谢谢你帮了我。嘿,p.萨蒙,这个分隔符开关合并了所有的事务代码,不允许它掉入。此外,活动的开始和结束也是另一个因素。谢谢你帮助我。