首页 / MYSQL / mysql -- 事务
mysql -- 事务
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql -- 事务,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2821字,纯文字阅读大概需要5分钟。
内容图文
![mysql -- 事务](/upload/InfoBanner/zyjiaocheng/513/d9a0894a420742bbbf7d55ffb8dc2e2c.jpg)
#TCL语言 /* transaction control language事务控制语言 事务: 一个或者一组SQL语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行 案例:转账,张三丰向郭襄转账500 张三丰 1000 郭襄 1000 update 表 set 张三丰的余额=500 where name="张三丰" 再上面执行完之后,数据库挂了,咋解决:这里面涉及事物机制 update 表 set 郭襄的余额=1500 where name="郭襄" 整个单独单元作为一个不可分割的获赠提,如果单元中某条sql语句一旦执行失败或者产合适呢个错误, 整个单元将会回滚(撤销之前的所有操作)。所有受到影响的数据将返回到事物开始前的状态;如果单元中的所有sql语句均执行成功,则事物被顺利执行。 存储引擎:在mysql中的数据用各种不同的技术存储在文件(内存)中。 show engines; 事物的ACID属性 1.原子性atomicity:事务:不可再分的工作单元 2.一致性consistency:一个状态转为另外一状态的总和时不变的 3.隔离性isolation:事务之间应该时隔离的(但是需要看隔离级别) 4.持久性durability:事务一旦被提交,就是永久性的 事务的创建 隐式事务:事务没有明显的开启和结束的标记 比如insert,update,delete语句 delete from 表 where id=1; #查看事务开启状态 show variables like "autocommit"; 显式事务:事务具有明显的开启和结束的标记 前提:必须设置自动提交功能为禁用 set autocommit=0; 步骤1:开启事务 set autocommit=0; start transaction;可选或者 begin 步骤2:编写事务中的sql语句(select,insert,update,delete) 语句1; 语句2; 。。。 步骤3:结束事务 commit;提交shiwu rollback;回滚事务 */ use test; create table money( id int primary key, name varchar(20), balance int); desc money; insert into money values(1,"张三丰",1000); insert into money values(2,"郭襄",1000); select * from money; #演示事务的创建步骤 #1.开启事务 set autocommit=0; start transaction; #2.编写事务中的sql语句 update money set balance = 500 where name="张三丰"; update money set balance = 1500 where name="郭襄"; #3.结束事务 commit;#提交 select * from money; #演示下回滚 #1.开启事务 set autocommit=0; start transaction; #2.编写事务中的sql语句 update money set balance = 1000 where name="张三丰"; update money set balance = 1000 where name="郭襄"; #3.结束事务 rollback;#回滚,结果仍然是500,1500没有更改 select * from money; 数据库的隔离级别 运行多个事务,如果没有采用必要的隔离机制,会导致各种并发问题: 1.脏读,对于两个事务T1,T2,T1读取了已经被T2更新但还没有被提交的字段,之后,若T2回滚,T1读取的内容就是临时且无效的 2.不可重复读:再次读取,值会改变 3.幻读:插入问题 数据库支持4种隔离级别 1.read uncommited(读未提交数据) 2.read commited(读已提交数据) 3.repeatable read(可重复读) 4.serializable(串行化) oracle支持2种事务隔离级别:read commited(读已提交数据),serializable(串行化),默认read commited(读已提交数据) mysql支持4种,默认为repeatable read(可重复读)
mysql -- 事务
标签:tab 事务 事务隔离级别 影响 oracl 功能 rac abi mon
本文系统来源:https://www.cnblogs.com/ivyharding/p/11575165.html
内容总结
以上是互联网集市为您收集整理的mysql -- 事务全部内容,希望文章能够帮你解决mysql -- 事务所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。