当前位置: 首页 > news >正文

一键自助建站山东振国网站建设

一键自助建站,山东振国网站建设,吉林市教做网站,网站制作xiu021MySQL—— 基础语法大全及操作演示#xff08;事务#xff09; 六、事务6.1 事务简介6.2 事务操作6.2.1 未控制事务6.2.2 控制事务一6.2.3 控制事务二 6.3 事务四大特性6.4 并发事务问题6.5 事务隔离级别 MySQL— 基础语法大全及操作演示#xff01;#xff01;#xff01… MySQL—— 基础语法大全及操作演示事务 六、事务6.1 事务简介6.2 事务操作6.2.1 未控制事务6.2.2 控制事务一6.2.3 控制事务二 6.3 事务四大特性6.4 并发事务问题6.5 事务隔离级别 MySQL— 基础语法大全及操作演示上https://blog.csdn.net/weixin_43412762/article/details/132051493 MySQL— 基础语法大全及操作演示中https://blog.csdn.net/weixin_43412762/article/details/132261256 MySQL— 基础语法大全及操作演示下https://blog.csdn.net/weixin_43412762/article/details/132548235 六、事务 6.1 事务简介 事务 是一组操作的集合它是一个不可分割的工作单位事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求即这些操作要么同时成功要么同时失败。 就比如: 张三给李四转账1000块钱张三银行账户的钱减少1000而李四银行账户的钱要增加1000。 这一组操作就必须在一个事务的范围内要么都成功要么都失败。 正常情况: 转账这个操作, 需要分为以下这么三步来完成 , 三步完成之后, 张三减少1000, 而李四增加1000, 转账成功。 异常情况: 转账这个操作, 也是分为以下这么三步来完成 , 在执行第三步是报错了, 这样就导致张三减少1000块钱, 而李四的金额没变, 这样就造成了数据的不一致, 就出现问题了。 为了解决上述的问题就需要通过数据的事务来完成我们只需要在业务逻辑执行之前开启事务执行完毕后提交事务。如果执行过程中报错则回滚事务把数据恢复到事务开始之前的状态。 注意 默认MySQL的事务是自动提交的也就是说当执行完一条DML语句时MySQL会立即隐式的提交事务。 6.2 事务操作 数据准备 drop table if exists account;create table account(id int primary key AUTO_INCREMENT comment ID,name varchar(10) comment 姓名,money double(10,2) comment 余额 ) comment 账户表;insert into account(name, money) VALUES (张三,2000), (李四,2000);6.2.1 未控制事务 1). 测试正常情况 -- 1. 查询张三余额 select * from account where name 张三; -- 2. 张三的余额减少1000 update account set money money - 1000 where name 张三; -- 3. 李四的余额增加1000 update account set money money 1000 where name 李四;测试完毕之后检查数据的状态, 可以看到数据操作前后是一致的。 2). 测试异常情况 -- 1. 查询张三余额 select * from account where name 张三; -- 2. 张三的余额减少1000 update account set money money - 1000 where name 张三; 程序抛出异常.... -- 3. 李四的余额增加1000 update account set money money 1000 where name 李四;我们把数据都恢复到2000 然后再次一次性执行上述的SQL语句(出错了… 这句话不符合SQL语法,执行就会报错)检查最终的数据情况, 发现数据在操作前后不一致了。 6.2.2 控制事务一 ⭐️ 1). 查看/设置事务提交方式 select autocommit ; set autocommit 0 ; -- 设置为手动提交业务完成后也执行 commit 指令.⭐️ 2). 提交事务 commit;⭐️ 3). 回滚事务 rollback;注意上述的这种方式我们是修改了事务的自动提交行为, 把默认的自动提交修改为了手动提交, 此时我们执行的DML语句都不会提交, 需要手动的执行 commit 进行提交。 6.2.3 控制事务二 ⭐️ 1). 开启事务 start transaction 或 begin ;⭐️ 2). 提交事务 commit;⭐️ 3). 回滚事务 rollback;6.3 事务四大特性 原子性Atomicity事务是不可分割的最小操作单元要么全部成功要么全部失败。一致性Consistency事务完成时必须使所有的数据都保持一致状态。隔离性Isolation数据库系统提供的隔离机制保证事务在不受外部并发操作影响的独立环境下运行。持久性Durability事务一旦提交或回滚它对数据库中的数据的改变就是永久的。 上述就是事务的四大特性简称 ACID。 6.4 并发事务问题 ⭐️ 1). 赃读一个事务读到另外一个事务还没有提交的数据。 比如A读取到了B未提交的数据。 read committed 可以解决脏读⭐️ 2). 不可重复读一个事务先后读取同一条记录但两次读取的数据不同称之为不可重复读。 事务A两次读取同一条记录但是读取到的数据却是不一样的。 repeatable read 可以解决不可重复读⭐️ 3). 幻读一个事务按照条件查询数据时没有对应的数据行但是在插入数据时又发现这行数据已经存在好像出现了 “幻影”。 6.5 事务隔离级别 为了解决并发事务所引发的问题在数据库中引入了事务隔离级别。主要有以下几种 从上到下隔离级别越来越高但性能越来越差。 ⭐️ 1). 查看事务隔离级别 select transaction_isolation;⭐️ 2). 设置事务隔离级别 set [ session | global ] transaction isolation level { read uncommitted | read committed | repeatable read | serializable }注意事务隔离级别越高数据越安全但是性能越低。
http://www.tj-hxxt.cn/news/221410.html

相关文章:

  • 淘宝上找网站建设好吗湖北专业的网瘾学校哪家口碑好
  • 企业php网站建设深圳专业网站建设技术
  • 城市门户网站建设抚州免费注册公司
  • 酒店门户网站建设背景新手学做网站推荐软件
  • 网站文件权限Wordpress连接ftp用户名
  • 网站服务器数据迁移软文推广页面
  • windows 网站开发环境网站运营优化方案
  • 做题网站中计算多项式的值怎么做广告推广代理
  • 多国语言 网站源码唐山模板网站建设
  • 我有服务器怎么做网站宁德建设网站
  • 网站渗透网站后台信息发布这样做
  • 网站开发深入浅出 - python篇数码商城网站建设
  • 南通市住房城乡建设局网站英雄联盟世界排名
  • 免费的个人主页网页制作网站东阳市城建设局网站
  • 肥西建设局官方网站上海优化外包
  • 做交流网站深圳平面设计公司推荐
  • 做摄影网站网站制作怎么办
  • 乌兰察布网站建设网站开发的基本功能
  • 手机网站布局技术做网站百度还是阿里巴巴好
  • 做网站可以做哪些方面的做网站的钱付款用途写什么
  • 怎么选择顺德网站建设乐清上班族网论坛
  • 网站做直链下载存储解决方案建站国外平台
  • 已经有域名 怎么做网站网页设计作品源代码彼岸花坊
  • 宿迁网站推广公司品牌关键词优化哪家便宜
  • 建设银行集团网站首页网站建设的工作职责是什么
  • 网站建设用什么程序语言石家庄是几线城市
  • 网站做电子链接标识申请好吗网络营销案例并分析
  • mcms怎么做网站集成微信的企业网站管理系统
  • 网站转化wordpress 批量创建目录结构
  • 房山做网站好网站开发公司