Mysql数据库学习笔记 2020-02-14

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

事务的四个特征(ADIC)
原子性( A )
一致性( D )
隔离性( I )
持久性( C )

事务处理
MySQL数据库默认自动提交事务
关闭自动提交事务:set autocommit=0
自动提交事务关闭后,需要手动执行 commit 才能确认修改表中的数据,执行commit之前使用rollback可以进行数据回滚,对预处理的数据进行回复

显式提交和隐式提交

显式提交手动写commit 进行提交
隐式提交执行某种操作时,会自动进行提交
当下列任意一种情况发生时,会发生隐式提交
执行一个DDL(CREATE、ALTER、DROP、TRUNCATE、RENAME)语句;
执行一个DCL(GRANT、REVOKE)语句;

显式回滚和隐式回滚
显式回滚: 手动书写rollback进行事务回滚

隐式回滚:
当下列任意一种情况发生时,会发生隐式回滚
1.客户端强行退出
2.客户端连接到服务器端异常中断
3.系统崩溃

设置保存点:
如果在一个事务内,想要回滚到指定位置,不是回滚到事务的起始点,可以通过保存点(SAVEPOINT)来实现。
SAVEPOINT savepointname;(定义一个保存点语句)
ROLLBACK TO savepointname;(回滚到指定保存点)
例:
BEGIN; 开始事务操作
DELETE FROM test ;
ROLLBACK; 撤消DELETE操作
INSERT INTO test VALUES(’A’);
SAVEPOINT insert_a; 定义insert_a保存点
INSERT INTO test VALUES(’B’);
SAVEPOINT insert_b; 定义insert_b保存点
INSERT INTO test VALUES(’C’);
ROLLBACK TO insert_b; 撤消操作到insert_b保存点
DELETE FROM test WHERE test_str = ‘A’;
COMMIT; 将所有修改写入数据库
ROLLBACK; 所有操作已经COMMIT提交,不能回滚

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值