mysql事务八股文
时间: 2024-09-11 16:07:54 浏览: 43
MySQL事务是指一组相关的数据库操作作为一个单独的工作单位进行处理,要么全部成功,要么全部回滚,保证了数据的一致性和完整性。事务通常包含以下几个关键特性:
1. **原子性(Atomicity)**:事务中的所有操作要么全部完成,要么全部不做,不会有任何部分操作被执行。
2. **一致性(Consistency)**:事务执行前后,数据库的状态保持一致,即满足业务规则。
3. **隔离性(Isolation)**:避免同时操作导致的数据冲突,例如读取脏数据(未提交的更新)。有四种隔离级别:读已提交(Read Committed)、可重复读(Repeatable Read)、序列化(Serializable)和串行化级别(默认)。
4. **持久性(Durability)**:一旦事务被提交,其更改将永久保存在数据库中,即使系统崩溃也能保持。
在MySQL中,开始事务通常使用`START TRANSACTION`语句,然后执行一系列操作,最后提交(`COMMIT`)或回滚(`ROLLBACK`)事务。如果在事务中间发生错误,可以使用`ROLLBACK`撤销所有的变更。
例如代码示例:
```sql
START TRANSACTION;
UPDATE account SET balance = balance - 100 WHERE id = 1;
UPDATE account SET balance = balance + 100 WHERE id = 2;
-- 如果两个UPDATE都成功,提交事务
IF @last_error_code IS NULL THEN
COMMIT;
ELSE
ROLLBACK; -- 回滚事务,因为某个操作失败
END IF;
```
阅读全文