在MySQL中,事务(Transaction)是一组SQL语句的执行序列,它们被视为一个单独的工作单元。事务具有以下四个特性,通常被称为ACID属性:

1. 原子性(Atomicity): 事务是一个原子操作,要么全部执行成功,要么全部不执行。如果事务中的任何一条语句失败,整个事务将被回滚(Rollback),回到最初的状态。

2. 一致性(Consistency): 事务在执行前后,数据库的状态应保持一致。这意味着事务的执行不会破坏数据库的完整性约束。

3. 隔离性(Isolation): 多个事务可以并发执行,但每个事务的执行应该与其他事务隔离。这确保了每个事务都不受其他并发事务的影响。

4. 持久性(Durability): 一旦事务成功提交,其结果应该是永久性的,即使系统崩溃也不应该丢失。

MySQL 中的事务控制语句

在MySQL中,使用以下语句来控制事务:

  •  START TRANSACTION: 用于开始一个新的事务。

  •  COMMIT: 用于提交事务,使事务中的所有更改生效。

  •  ROLLBACK: 用于回滚事务,撤销事务中的所有更改。


以下是一个简单的例子,演示如何在MySQL中使用事务:
-- 开始事务
START TRANSACTION;

-- 执行一些SQL语句
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;

-- 根据需要检查事务是否成功
-- 如果一切正常,提交事务
COMMIT;

-- 如果发生错误或其他问题,回滚事务
-- ROLLBACK;

在这个例子中,两个UPDATE语句将资金从一个账户转移到另一个账户。如果两个更新都成功,事务将通过COMMIT语句提交。如果发生错误,你可以通过取消COMMIT注释并将ROLLBACK语句取消注释来回滚事务。

请注意,事务应该在数据库引擎支持事务的情况下使用。MySQL的InnoDB引擎是一个支持事务的示例。


转载请注明出处:http://www.zyzy.cn/article/detail/7997/MySQL