数据库MYSQL学习系列三
发布时间:2020-04-08 08:21:05
来源:51CTO
阅读:1038
作者:轻狂书生999
数据库MYSQL学习系列三
三.MYSQL事务与存储引擎
3.1-数据库事务
什么是事务
一系列有序的数据库操作:
o要么全部成功
o要么全部回退到操作前的状态
o中间状态对其他连接不可见
事务的基本操作: | 基本操作 | 说明 | | :------------- | :------------- | | start transaction | 开始事务 | | commit | 提交(全部完成) | | rollback | 回滚(回到初始状态) |
-- 开启一个事务start transaction;-- 或者使用(非标准sql)begin;insert into t values (1, 1, 1);-- 事务结束,插入成功commit;
begin;insert into t values (2, 1, 1);insert into t values (3, 1, 1);insert into t values (4, 1, 1);-- 事务结束,没有插入数据rollback;
begin;
insert into t values (1, 1, 1);
savepoint a1;insert into t values (2, 1, 1);-- 回滚到指定的保存点rollback to a1;commit;
自动提交
autocommit可以在session级别设置
每个DML操作都自动提交
DDL永远都是自动提交,无法通过rollback回滚
事务的四个基本属性(ACID)
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持久性(Durability)
事务的原子性
包含在事务中的操作要么全部被执行,要么都不执行
中途数据库或应用发生异常,未提交的事务都应该被回滚
事务的一致性
数据的正确性,合理性,完整性
数据一致性应该符合应用需要规则:
o余额不能是负数
o交易对象必须先有账号
o用户账号不能重复
事务的结果需要满足数据的一致性约束
事物的持久性
提交完成的事务对数据库的影响必须是永久性的
o数据库异常不会丢失事务更新
o通常认为成功写入磁盘的数据即为持久化成功
事务的持久化的