MySQL数据事务处理

事务

事务:也称工作单元,是由一个或多个SQL语句所组成的操
作序列,这些SQL语句作为一个完整的工作单元,要么全部
执行成功,要么全部执行失败。在数据库中,通过事务来
保证数据的一致性。

事务处理

事务组成
在数据库中,事务由一组相关的dml或select语句,加上一个tpl语句(COMMIT、ROLLBACK)或一个DDL语句(CREATE、
ALTER、DROP、TRUNCATE等)或一个DCL(GRANT、REVOKE)
语句。
例:如下语句组成两个事务
• INSERT….
• UPDATE….
• DELETE….
• SELECT….
• INSERT…
• COMMIT; -- 前6条语句,组成第1个事务
• UPDATE…
• DELETE….
• CREATE… ; --后3条语句,组成第2个事务

事务特征可由四个字母的缩写表示:ACID

-原子性(Atomicity)

  • 一致性(Consistency)
  • 隔离性(Isolation)
    -持久性(Durability)

mysql的事务处理主要有两种方法

1.用begin,rollback,commit来实现
begin开始一个事务
rollback事务回滚
commit 事务提交
2.直接用set来改变MySQL的自动提交模式
MySQL默认是自动提交的,也就是你提交一个sql,就直接
执行!可以通过
set autocommit = 0 禁止自动提交
set autocommit = 1 开启自动提交
来实现事务的处理。
但要注意当用set autocommit = 0 的时候,以后所有的sql都
将作为事务处理,直到用commit确认或 rollback结束,注意
当结束这个事务的同时也开启了新的事务!按第一种方法只将
当前的做为一个事务!

隐式结束
– 隐式提交:当下列任意一种情况发生时,会发生隐式提交
• 执行一个DDL(CREATE、ALTER、DROP、TRUNCATE、RENAME)
语句;
• 执行一个DCL(GRANT、REVOKE)语句;
– 隐式回滚:当下列任意一种情况发生时,会发生隐式回滚
• 客户端强行退出
• 客户端连接到服务器端异常中断
• 系统崩溃
• 设置保存点:如果在一个事务内,想要回滚到指
定位置,不是回滚到事务的起始点,可以通过保
存点(SAVEPOINT)来实现。
– SAVEPOINT savepointname ;--定义一个保存点语句;
– ROLLBACK TO savepointname ;--回滚到指定保存点
– 注意:如上两条语句不结束事务的执行。

MySQL数据事务处理_第1张图片
图片.png

你可能感兴趣的:(MySQL数据事务处理)