首页 > mysql教程 > 正文

MySQL事务管理的介绍(附示例)

转载 2019-03-08 0 21

原标题:MySQL事务管理的介绍(附示例)

事务处理用来维护数据库等完整性,保证mysql操作要么成功,要么失败(myisam不支持事务)

1、关键词

  1. 事务(transaction)指一组SQL语句;
  2. 回退(rollback)指撤销指定SQL语句的过程;
  3. 提交(commit)指将未存储的SQL语句结果写入数据库表;
  4. 保留点(savepoint)指事务处理中设置的临时占位符(place-holder),你可以对它发布回退(与回退整个事务处理不同)。

2、使用rollback

select * from orderitems;

START TRANSACTION;

DELETE FROM orderitems;

select * from orderitems;

ROLLBACK;

select * from orderitems;

3、使用commit

START TRANSACTION;

DELETE FROM orderitems where order_num = 20010;

DELETE FROM orders WHERE order_num = 20010;

COMMIT

假设第二条删除失败,回滚,撤销事务处理块内的语句

4、使用保留点

复杂的事务处理可能需要部分提交或回退。

为了支持回退部分事务处理,必须能在事务处理块中合适的位置放 置占位符。这样,如果需要回退,可以回退到某个占位符。

这些占位符称为保留点。为了创建占位符,可如下使用SAVEPOINT

创建保留点

SAVEPOINT delete1

回退到保留点

ROLLBACK TO delete1

tips

保留点越多越好,方便灵活使用,but没必要到就算来哈!凡事适可而止

释放保留点

  1. 保留点在事务处理完成(执行一条ROLLBACK或 COMMIT)后自动释放
  2. release savepoint delete1明确释放保留点

5、更改默认到提交行为

mysql是自动提交所有更改。

不自动提交更改

set autocommit = 0;

相关文章


  • MySQL 自增 id 超大问题查询
  • 数据库笔试面试82——在MySQL中,把TEST表的ID列设置为主键,并在NAME字段上创建普通索引
  • 数据库笔试面试98——在MySQL中,有两个复合索引(A,B)和(C,D),以下语句会怎样使用索引?
  • MySQL/InnoDB乐观锁悲观锁共享锁、排它锁行锁表锁死锁概念的理解
  • 数据库笔试面试97——在MySQL中,如何分析一条SQL语句的执行性能?需要关注哪些信息?
  • 【FB TV】一周「BUF大事件」:Cloudflare泄露用户信息;MySQL数据库遭勒索;碰撞攻击实例首位受害者WebKit
  • 「蓉华软创测试基础」软件测试环境搭建07:安装Workbench并设置远程连接MySQL
  • 48. 访问MySql数据库增删改查和连接池及空字段处理 | 厚土Go学习笔记