什么是MySQL事务?

MySQL事务用于一组SQL语句的执行,要么成功执行要么全部失败回滚。事务可以保证数据的一致性和完整性。

MySQL事务具有4个特征:

  1. 原子性:事务中的SQL语句要么全部执行,要么全部不执行。
  2. 一致性:事务执行前后数据库总体数据保持一致。
  3. 隔离性:并发访问数据库时,一个事务中的执行不会影响其他事务。
  4. 持久性:事务一旦提交,对数据库的数据改变是持久的。

MySQL事务相关的SQL语句包括:

  1. START TRANSACTION:开始一个事务
  2. COMMIT:提交事务,使得SQL语句的更改持久化
  3. ROLLBACK:回滚事务,撤销SQL语句的更改
  4. SAVEPOINT:设置事务保存点,可以对保存点进行回滚

示例:

START TRANSACTION;  #开始事务

UPDATE users SET balance = balance - 100 WHERE id = 1;
UPDATE users SET balance = balance + 100 WHERE id = 2;

SAVEPOINT update_users; #设置保存点

UPDATE posts SET content = 'Hello' WHERE id = 1;

ROLLBACK TO update_users; #回滚到保存点

COMMIT; #提交事务