今天闲聊之时 提及MySQL事件的执行,发现一些自己之前没有注意的细节

如果在执行事件过程中,如果insert的存储过程发生意外 会如何

USE iot2;
CREATE TABLE aaaa (timeline TIMESTAMP);
CREATE TABLE aaab (timeline TIMESTAMP);

 

CREATE EVENT e_test_insert ON SCHEDULE EVERY 1 SECOND DO call ck1() ;

存储过程为

DELIMITER $$ 
USE `iot2`$$
DROP PROCEDURE IF EXISTS `ck1`$$
CREATE PROCEDURE `ck1`()
 BEGIN
   INSERT INTO iot2.aaaa VALUES (CURRENT_TIMESTAMP);
   INSERT INTO iot2.aaab VALUES (CURRENT_TIMESTAMP); 
 END $$
DELIMITER ;

 

此时 删除aaaa 发现事务不在执行 错误日志中的提示为

2015-12-27 15:32:04 3451 [ERROR] Event Scheduler: [root@localhost][iot2.e_test_insert] Table 'iot2.aaaa' doesn't exist
2015-12-27 15:32:04 3451 [Note] Event Scheduler: [root@localhost].[iot2.e_test_insert] event execution failed.
2015-12-27 15:32:05 3451 [ERROR] Event Scheduler: [root@localhost][iot2.e_test_insert] Table 'iot2.aaaa' doesn't exist
2015-12-27 15:32:05 3451 [Note] Event Scheduler: [root@localhost].[iot2.e_test_insert] event execution failed.
2015-12-27 15:32:06 3451 [ERROR] Event Scheduler: [root@localhost][iot2.e_test_insert] Table 'iot2.aaaa' doesn't exist
2015-12-27 15:32:06 3451 [Note] Event Scheduler: [root@localhost].[iot2.e_test_insert] event execution failed.
2015-12-27 15:32:07 3451 [ERROR] Event Scheduler: [root@localhost][iot2.e_test_insert] Table 'iot2.aaaa' doesn't exist
2015-12-27 15:32:07 3451 [Note] Event Scheduler: [root@localhost].[iot2.e_test_insert] event execution failed.
2015-12-27 15:32:08 3451 [ERROR] Event Scheduler: [root@localhost][iot2.e_test_insert] Table 'iot2.aaaa' doesn't exist
2015-12-27 15:32:08 3451 [Note] Event Scheduler: [root@localhost].[iot2.e_test_insert] event execution failed.
2015-12-27 15:32:09 3451 [ERROR] Event Scheduler: [root@localhost][iot2.e_test_insert] Table 'iot2.aaaa' doesn't exist
2015-12-27 15:32:09 3451 [Note] Event Scheduler: [root@localhost].[iot2.e_test_insert] event execution failed.

可以发现 事件失败。。。

 

posted on 2016-01-15 15:49  懒睡的猫熊  阅读(608)  评论(0编辑  收藏  举报