MySQL如何实现手动提交事务或回滚事务?

在MySQL中,我们可以手动制定提交或回滚事务。

  1. 提交事务:使用COMMIT语句。
    语法:
COMMIT; 

作用: 提交当前事务,使数据操作真正地写入物理数据库。

  1. 回滚事务:使用ROLLBACK语句。
    语法:
ROLLBACK;

作用: 回滚当前事务,撤销最近未提交的数据库操作。
示例:

START TRANSACTION;

INSERT INTO users VALUES (1, 'John');

UPDATE users SET name = 'Jane' WHERE id = 1; 

ROLLBACK; 

# 实际上Jane没有插入,ID为1的记录仍为John

START TRANSACTION;

INSERT INTO users VALUES (1, 'John');

UPDATE users SET name = 'Jane' WHERE id = 1;

COMMIT;

#  Jane成功插入ID为1的记录 

注意:

  • 事务默认是自动提交的。需要使用START TRANSACTION开始一个事务。
  • COMMIT会使事务中的所有操作真正写入物理数据库。
  • ROLLBACK会回滚事务中未COMMIT 的操作。
  • 不提交事务不会写入物理数据库。事务失败时需要回滚。