概念
事务,也称为工作单元,是由一个和多个sql语句所组成的操作序列。这些sql是一个完整的单元,要么全成功、要么全失败。用来保证数据库中数据的一致性。
事务处理语言(TRL):
用来对组成事务的DML语句的操作结果进行确认或取消。
确认:使DML操作生效,commit命令实现
取消:使DML操作失效,rollback命令实现
通过事务,可以确保数据库中数据一致,例:两个账户转账。
事务的特性:***
1.原子性:事务就像原子一样不可分割,组成事务的DML操作语言要么全部成功,要么全部失败,不可能出现部分成功部分失败的情况。
2.一致性:一旦事务完成,不管成功或者失败,整个系统处于数据一致的状态
3.隔离性:事务之间互不干扰
4.持久性:一旦事务提交,对数据的改变是永久的,不能被回滚。
Mysql中的数据事务开启方法:
1.用begin、rollback、commint来实现
begin:开始一个事务
rollback:事务回滚
commit:事务提交
2.直接用set来改变事务提交方式
set autocommit = 0 :禁止自动提交
set autocommit = 1 :开始自动提交
但是当用set autocommit = 0 :禁止自动提交时以后所有sql都会被作为事务处理,直到commit确认和rollback结束。注意当这个事务结束时也开启了新的事务!
隐式提交
执行DDL(CREATE,ALTER,DROP,RENAME,TRUNCATE)语句
执行DCL(grant,revoke)语句
隐式回滚
客户端强制退出
系统崩溃
客户端连接到服务器短异常中断
设置保存点
回滚到指定的点 (savepoint来实现)
定义保存点:savepoint 名称
回到指定点:rollback to 名称
网友评论