Mysql中的事务
提到事务我就想到食物,真羡慕你们不愁吃喝,呵呵
谈及数据库中的事务,一般要从这三个方面说起
1)开启事务
命令:start transaction【推荐】 或者begin
2)提交事务
命令:commit
数据库默认是自动提交即autocommit=true
你不信?可以使用show variables like 'auto%'; 查看一下啦
set autocommit = 0;关闭自动提交,运行sql语句后,需要commit才会影响数据库
set autocommit = 1;开启自动提交,运行完后,直接影响数据库
没事别总改全局变量autocommit哈,会影响别的用户工作滴。尝试着习惯start transaction吧
start transaction; update book set price = price+8 where id='abc1'; commit; --rollback;
3)回滚事务
命令:Rollback
这个很好理解,运行sql出错了(语法错误,逻辑错误,不想运行了),怎么办?
Rooback一行命令帮你搞定,前提是你要开启事务 \(^o^)/
其它
1)支持事务的数据库引擎有InnoDB(支持并发,行级锁定)等等
2)SQL执行分两步
①执行阶段②将执行结果提交到数据库中
3)事务ACID属性分别是
原子性,一致性,隔离性,持久性(就知道你记不住的)
4)在事务中,执行sql语句会暂时存放在事务日志中,若执行结果成功则。。。