MySQL-事务特性

介绍

事务是指数据库管理系统执行的一组操作,被视为一个单一的工作单元,这组操作要么全部执行成功,要么全部执行失败。MySQL 支持事务,具体体现在以下几个方面:

1. ACID 特性:

  • 原子性(Atomicity): 事务中的所有操作要么全部执行成功,要么全部失败。如果一个操作失败,整个事务将被回滚到最初状态。
  • 一致性(Consistency): 事务将数据库从一个一致的状态转移到另一个一致的状态,保持数据的完整性。
  • 隔离性(Isolation): 多个事务可以并发执行,但它们的执行应该互不干扰,每个事务都感觉到它是在独立执行的。MySQL 提供了不同的隔离级别,如读未提交、读已提交、可重复读和串行化。
  • 持久性(Durability): 一旦事务提交,对数据库的修改将是永久性的,即使发生系统故障,数据也不会丢失。
    事务的开始和结束:

2. 事务的开始通过 BEGIN 或 START TRANSACTION 关键字。

事务的结束通过 COMMIT 提交事务或 ROLLBACK 回滚事务。COMMIT 表示事务成功完成,ROLLBACK 表示撤销事务中的所有操作。

BEGIN; -- 或者 START TRANSACTION;

-- 执行一系列 SQL 操作

COMMIT; -- 提交事务

-- 或者

ROLLBACK; -- 回滚事务

3. 保存点(Savepoints):

通过设置保存点,可以在事务中创建可以回滚到该点的标记,实现更灵活的控制。

SAVEPOINT savepoint_name;

-- 执行一系列 SQL 操作

ROLLBACK TO savepoint_name; -- 回滚到保存点

-- 或者

RELEASE SAVEPOINT savepoint_name; -- 释放保存点

4. 自动提交(Autocommit):

  • 默认情况下,MySQL 处于自动提交模式,即每个 SQL 语句都被视为一个事务,并自动提交。
  • 通过 SET autocommit = 0; 可以禁用自动提交,然后使用 COMMIT 或 ROLLBACK 手动管理事务。
SET autocommit = 0; -- 禁用自动提交

-- 执行一系列 SQL 操作

COMMIT; -- 手动提交事务

-- 或者

ROLLBACK; -- 手动回滚事务

SET autocommit = 1; -- 启用自动提交

事务的使用可以确保数据库操作的一致性和完整性,特别是在需要处理复杂的业务逻辑或涉及多个操作步骤时。

你可能感兴趣的:(mysql,数据库)