在MySQL中,我们可以手动制定提交或回滚事务。
- 提交事务:使用COMMIT语句。
语法:
COMMIT;
作用: 提交当前事务,使数据操作真正地写入物理数据库。
- 回滚事务:使用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 的操作。
- 不提交事务不会写入物理数据库。事务失败时需要回滚。