MySQL事务处理
2012-02-25 15:51
141 查看
1.MySQL默认是自动提交的,改变提交模式:
set autocommit = 0; #禁止自动提交
set autocommit = 1; #开启自动提交
2.动作
开始事务:start;
提交事务:commit;
回滚事务:rollback;
保存点:savepoint name;
回滚至保存点:rollback to savepoint name;
begin; update person set name='efgh' where id =10 ; select * from person ; rollback ; select * from person ;
begin ; update person set name='efgh' where id =10 ; select * from person ; commit ; select * from person;
begin; update score set score=40 where scoreid=1; savepoint s1; update score set score=50 where scoreid=2; select * from score; rollback to savepoint s1; select * from score; commit;
3.事务的四大特征
原子性
一个原子事务要么完整执行,要么干脆不执行。
这意味着,工作单元中的每项任务都必须正确执行。
如果有任一任务执行失败,则整个工作单元或事务就会被终止。
即此前对数据所作的任何修改都将被撤销。
如果所有任务都被成功执行,事务就会被提交,即对数据所作的修改将会是永久性的。
一致性
一致性代表了底层数据存储的完整性。 它必须由事务系统和应用开发人员共同来保证。事务系统通过保证事务的原子性,隔离性和持久性来满足这一要求; 应用开发人员则需要保证数据库有适当的约束(主键,引用完整性等),并且工作单元中所实现的业务逻辑不会导致数据的不一致(即,数据预期所表达的现实业务情况不相一致)。
例如,在一次转账过程中,从某一账户中扣除的金额必须与另一账户中存入的金额相等。
隔离性
隔离性意味着事务必须在不干扰其他进程或事务的前提下独立执行。 换言之,在事务或工作单元执行完毕之前,其所访问的数据不能受系统其他部分的影响。
持久性
持久性意味着当系统或介质发生故障时,确保已提交事务的更新不能丢失。即一旦一个事务提交,DBMS保证它对数据库中数据的改变应该是永久性的,耐得住任何系统故障。持久性通过数据库备份和恢复来保证。
阅读更多
相关文章推荐
- MySQL的事务处理及隔离级别
- MYSQL的事务处理主要有两种方法。
- PHP mysql 事务处理实例
- PHP与MYSQL事务处理
- QT 5.5之后的Mysql事务处理
- 理解MYSQL事务处理
- PHP mysql 事务处理实例
- 跟着百度学PHP[14]-PDO之Mysql的事务处理2
- 关于mysql管理事务处理
- MYSQL必知必会读书笔记 第二十六章 管理事务处理
- sql学习笔记(24)----------MySQL的事务处理详解
- php结合mysql与mysqli扩展处理事务的方法
- EF 事务处理 (InnoDB Engine的MySQL表也可以)
- mysql事务和 MySQL 加锁处理分析(原文博客讨论太激烈了,看评论可以看一天,这篇文章也没看完)
- MYSQL--事务处理
- PHP与MYSQL事务处理
- NodeJs使用Mysql模块实现事务处理
- MySQL事务处理实现方法步骤
- MYSQL--事务处理
- mysql 事务处理