MYSQL 事务
显式事务:
start transaction ; # 这里要有 ;号
------inner code
commit; | rollbak; #这里也要有 ;号
-----------------------------------------------------------------------------------------------------------------
控制事务自动化方式:
set autocommit = off | on # 也可以是 (0)零 和(1) 壹;
例子:
连接A上运行:set autocommit = 0; 使得事务要手动提交。
打开第二个连接,查看set autocommit =0;的作用效果是整个数据库还是单个连接
可以看到
set autocommit 只对当前连接有用!
------------------------------------------------------------------------
有些语句不能被回滚。通常,这些语句包括数据定义语言(DDL)语句,比如创建或取消数据库的语句,和创建、取消或更改表或存储的子程序的语句。
在设计事务时,不应包含这类语句。如果您在事务的前部中发布了一个不能被回滚的语句,则后部的其它语句会发生错误,在这些情况下,
通过发布ROLLBACK语句不能 回滚事务的全部效果。
-----------