MYSQL学习笔记:关于MySQL管理事务处理(6)


MySQL学习:


MySQL事务

事务处理用来维护数据库的完整性,用来管理成批执行的MySQL操作。


介绍几个术语
  • 事务(transaction)

指一组SQL语句。

  • 回退(rollback)

指撤销指定SQL语句的过程。

  • 提交(commit)

指将末存储的SQL语句结果写入数据库表。

  • 保留点(savepoint)

指事务处理中设置的临时占位符,你可以对它发布回退(与回退整个事务处理不同)。



使用MySQL事务
  • 标志事务的开始

使用START TRANSACTION语句来标志开始。

START TRANSACTION;
  • 回退(撤销)MySQL语句

使用 ROLLBACK 命令来回退MySQL语句。

注意:

  • ROLLBACK只能在一个事务处理内使用(在执行一条START TRANSACTION命令之后)。
  • 事务处理用来管理INSERTUPDATEDELETE语句,不能回退SELECT(没意义)、CREATEDROP(用了也没效果)。
-- 说明表中有数据
SELECT * FROM students; 
	
-- 标示事务的开始
START TRANSACTION;

-- 删除表中的数据
DELETE FROM students;

-- 表示表中数据为空
SELECT * FROM students;
	
-- 撤销上一条语句
ROLLBACK;

-- 表名撤销成功
SELECT * FROM students;
  • 提交事务

一般的MySQL语句都是隐含提交的,即提交(写或保存)操作时自动进行的。
COMMIT 语句仅在不出错时写出更改。
当 COMMIT 或 ROLLBACK 语句执行后,事务会自动关闭,将来的更改会隐含提交。

语句1;
语句2;
COMMIT;
  • 使用保留点

为了支持回退部分事务处理,必须能在事务处理块中合适的位置放保留点。
使用 SAVEPOINT name_p 命令来创建,用 ROLLBACK TO name_p 来回退。

SAVEPOINT name_p1;
...
SAVEPOINT name_p2;

ROLLBACK To name_p1;

注意:

  1. 保留点越多越好
  2. 保留点在事务处理完成(执行一条 ROLLBACKCOMMIT)后自动释放。
  • 更改默认的提交行为

为指示MySQL不自动提交更改,需要使用 SET autocommit=0 语句

SET autocommit = 0;

其中autocommit标志决定是否自动提交更改,设置为0(假)时指示MySQL不自动提交更改,知道设置为真为止



若有不当之处,欢迎指正!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值