MySQL事务(event scheduler)的学习【事务创建之后,没有运行的问题】
【本篇文章主要解决的是,MySQL事务创建之后,没有运行的问题】
首先从这里开始:http://www.w3schools.in/mysql/event-schedule/,创建了基本的MySQL事务,然后查看了下事务,如下第二条,【这里图片是所有操作后的截图】
但遇到一个问题,事实上事务并未被执行,查资料,找到以下文章:http://hi.baidu.com/zhulin014/item/458a3825e3cbb93194f62b12,
意外收获,学到了
set autocommit = 0/1; || 手动调用 commit; 提交
show variables like 'autocommit';
savepoint s1;
rollback;
rollback to savepoing s1;
等命令的用法和特性;
看完上面那片文章后,又找到官方文档:http://dev.mysql.com/doc/refman/5.1/en/create-event.html,常见了第二个事务【上图的第一条】,还是无法创建完后即自动运行,
谷歌关键字:mysql start event scheduler,找到了这篇:http://stackoverflow.com/questions/10071871/enabling-mysql-event-scheduler-on-server-restarts
【关键时刻还是stackover好使】
设置了两个变量:@@autocommit 和 @@global.event_scheduler 之后,事务果然运行起来了,【我的MySQL的event_schduler初始是OFF】
后有研究了下这两个变量:
A: @@global.event_scheduler B:@@autocommit
A = off && B = * : 事务处于关闭状态
A = on && B = 1 : 事务处于开启状态,事务每执行一次,自动向数据库提交一次,
A = on && B = 0 : 事务处于开启状态,事务正常执行,但不会向数据库提交,而是将数据堆积,直到手动执行 commit 或者将 B 置 1,此时多有堆积的数据向数据库提交,事务继续。
还有两篇文章:
http://www.d5s.cn/archives/93,
http://dove19900520.iteye.com/blog/1733963
感觉蛮不错的样子【虽对我解决本次问题没帮上忙- -!,但还是先收着】