MySQL学习笔记之事务
2014-11-24 10:46
519 查看
1、什么时候会用到
我们用一个简单的例子来说明:
当我们银行转账的时候,首先我们要从自己银行把钱取出来,然后存入对方银行。
这里有两个动作:
1、从自己银行里面把钱取出来(update)
2、存入对方银行(update)
如果第一个动作执行成功,但是第二条数据执行失败,那么我们自己的钱取出来,但是对方却没有收到,我们就损失钱财了。
现在我们的期望是:当1、2动作中任意一个执行失败,拿就回滚到执行SQL语句前的状态。执行成功就写入数据库。
但现在提交到数据库的动作是由系统自动完成,所以我们现在就需要来接管这个自动提交的功能。
2、关键字
autocommit(控制是否自动提交到服务器,1,为自动提交;0,为手动提交,系统默认1)
commit(提交)
rollback(回滚到事务执行前)
savepoint 标记点名称(设置标记,用来rollback到这个标记点)
2、实现语法
1.set@@autocommit = 0;
update 表名 set 字段名=新值 where 条件;
comit;(执行成功后提交)/rollback;(执行失败回滚)
缺点:因为我们更改了autocommit 的值,那么以后的操作都是手动提交,这样不利于操作,所以我们需要使用下面的方法。
2.start transaction;启动事务
update 表名 set 字段名=新值 where 条件;
commit;(执行成功后提交)/rollback;(执行失败回滚)
savepoint 标记点名称;(设置标记),用于使用rollback to标记点名称(回滚到此点状态)
3、特性:ACID
1.原子性(A):事务其实就是执行一组SQL语句,他们中只要有一条语句执行失败,整个事务都失败。
2.一致性(C):即在事务开始之前和事务结束以后,数据库的设定是一样的。
3.隔离性(I):当使用事务对数据进行操作时,我们另外的会话是无法对此条数据进行操作的。我们的InnoDB使用的是数据行锁。
4.持久性(D):当事务成功,数据将提交到数据库,数据就被持久化了。
我们用一个简单的例子来说明:
当我们银行转账的时候,首先我们要从自己银行把钱取出来,然后存入对方银行。
这里有两个动作:
1、从自己银行里面把钱取出来(update)
2、存入对方银行(update)
如果第一个动作执行成功,但是第二条数据执行失败,那么我们自己的钱取出来,但是对方却没有收到,我们就损失钱财了。
现在我们的期望是:当1、2动作中任意一个执行失败,拿就回滚到执行SQL语句前的状态。执行成功就写入数据库。
但现在提交到数据库的动作是由系统自动完成,所以我们现在就需要来接管这个自动提交的功能。
2、关键字
autocommit(控制是否自动提交到服务器,1,为自动提交;0,为手动提交,系统默认1)
commit(提交)
rollback(回滚到事务执行前)
savepoint 标记点名称(设置标记,用来rollback到这个标记点)
2、实现语法
1.set@@autocommit = 0;
update 表名 set 字段名=新值 where 条件;
comit;(执行成功后提交)/rollback;(执行失败回滚)
缺点:因为我们更改了autocommit 的值,那么以后的操作都是手动提交,这样不利于操作,所以我们需要使用下面的方法。
2.start transaction;启动事务
update 表名 set 字段名=新值 where 条件;
commit;(执行成功后提交)/rollback;(执行失败回滚)
savepoint 标记点名称;(设置标记),用于使用rollback to标记点名称(回滚到此点状态)
3、特性:ACID
1.原子性(A):事务其实就是执行一组SQL语句,他们中只要有一条语句执行失败,整个事务都失败。
2.一致性(C):即在事务开始之前和事务结束以后,数据库的设定是一样的。
3.隔离性(I):当使用事务对数据进行操作时,我们另外的会话是无法对此条数据进行操作的。我们的InnoDB使用的是数据行锁。
4.持久性(D):当事务成功,数据将提交到数据库,数据就被持久化了。
相关文章推荐
- MySQL学习笔记(14)之事务
- 高性能MySql学习笔记——锁、事务、隔离级别
- Mysql学习笔记-数据库事务
- 51.笔记 MySQL学习——使用事务保存点句
- MySQL Transaction(事务)学习笔记
- 50.笔记 MySQL学习——利用事务处理保证语句
- 52.笔记 MySQL学习——事务隔离
- (MYSQL学习笔记4)事务的开启、提交、回滚
- MySQL学习笔记-事务相关话题
- MySQL学习笔记之四:并发控制和事务机制
- 高性能MySql学习笔记——锁、事务、隔离级别
- day13_Mysql事务与数据库连接池学习笔记
- [MySql学习笔记] 四 存储引擎事务处理
- mysql 事务学习笔记
- MySQL事务控制语句(学习笔记)
- MySqL 事务与锁的深入学习笔记
- MySQL学习笔记 第九讲:视图、事务、触发器
- Mysql学习笔记二十三——事务
- MySql学习笔记——锁与事务机制
- 【mysql学习笔记】-事务处理