MySQL事务用于一组SQL语句的执行,要么成功执行要么全部失败回滚。事务可以保证数据的一致性和完整性。
MySQL事务具有4个特征:
- 原子性:事务中的SQL语句要么全部执行,要么全部不执行。
- 一致性:事务执行前后数据库总体数据保持一致。
- 隔离性:并发访问数据库时,一个事务中的执行不会影响其他事务。
- 持久性:事务一旦提交,对数据库的数据改变是持久的。
MySQL事务相关的SQL语句包括:
- START TRANSACTION:开始一个事务
- COMMIT:提交事务,使得SQL语句的更改持久化
- ROLLBACK:回滚事务,撤销SQL语句的更改
- 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; #提交事务