今天闲聊之时 提及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.
可以发现 事件失败。。。