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

网站闭站上海网站建设sheji021

网站闭站,上海网站建设sheji021,网站站群 硬盘扩容 申请报告,青岛房产中介网站开发事务概念 MySQL事务是一个或者多个的数据库操作#xff0c;要么全部执行成功#xff0c;要么全部失败回滚。 事务是通过事务日志来实现的#xff0c;事务日志包括#xff1a;redo log和undo log。 事务状态 事务有以下五种状态#xff1a; 活动的部分提交的失败的中止的…事务概念 MySQL事务是一个或者多个的数据库操作要么全部执行成功要么全部失败回滚。 事务是通过事务日志来实现的事务日志包括redo log和undo log。 事务状态 事务有以下五种状态 活动的部分提交的失败的中止的提交的 活动 事务对应的数据库操作正在执行过程中时我们就说该事务处在活动的状态。 部分提交 事务对应的数据库操作的最后一个操作执行完成但是操作都在内存中此刻还没有将数据刷新到磁盘中这个状态称为部分提交 失败 当事务处在活动或部分提交的状态时遭到了某种错误数据库自身的错误、操作系统错误或者直接断电等导致操作不能进行下去或者人为停止这个状态称为失败。 中止 如果事务执行了半截而变为失败的状态撤销失败事务对当前数据库造成的影响我们把这个撤销的过程称之为回滚。 当回滚操作执行完毕时也就是数据库恢复到了执行事务之前的状态我们就说该事务处在了中止的状态。 提交 当一个处在部分提交的状态的事务将修改过的数据都同步到磁盘上之后我们就可以说该事务处在了提交的状态。 有一张图我认为解释的非常好给大家看看 只有当事务处于提交的或者中止的状态时一个事务的生命周期才算是结束 讲了这么多事务有什么作用 可以保证复杂数据库操作数据的一致性尤其是并发访问数据的时候。MySQL 事务主要用于处理操作量大复杂度高的数据。 事务的特点 原子性Atomicity又称不可分割性 事务的数据操作要么全部执行成功要么全部失败回滚到执行之前的状态就像这个事务从来没有执行过一样。 #隔离性Isolation又称独立性 多个事务之间是相互隔离互不影响的。数据库允许多个并发事务同时对其数据进行读写和修改的能力隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。 四种隔离状态 1. 读未提交Read uncommitted 2. 读提交Read committed 3. 可重复读Repeatable read 4. 串行化Serializable一致性Consistency 在事务操作之前和之后数据都是保持一个相同的状态数据库的完整性没有被破坏。 原子性和隔离性对一致性有着至关重要的影响。 持久性Durability 当事务操作完成后数据会被刷新到磁盘永久保存即便是系统故障也不会丢失。 知道这些理念了那么具体应该怎么操作呢 接下来是事务的实操 事务实操语法) 基本语法 启动 方式1 mysql begin; Query OK, 0 rows affected (0.00 sec) mysql 事务操作SQL......方式2 mysql start transaction read only; Query OK, 0 rows affected (0.00 sec) mysql 事务操作SQL......注意第二种方式如果设事务只读的话对数据库进行写操作会报错。  提交commit mysql commit; Query OK, 0 rows affected (0.00 sec)回滚rollback) mysql rollback; Query OK, 0 rows affected (0.00 sec)实操 首先我们先创建个表 创建数据表 create table account(- id int(10) auto_increment,- name varchar(30),- balance int(10),- primary key (id)); 插入数据 insert into account(name,balance) values(老王媳妇,100),(老王,10);我们现在的需求是老王媳妇转账给老王20元这个时候涉及到多个操作就可以用MySQL的事务。 执行步骤 执行步骤 1. 从老王媳妇账户读取数据 2. 从老王媳妇账户上减掉20元 3. 从老王账户读取数据 4. 给老王账户增加20元 5. 执行提交成功 6. 此时老王媳妇账户只有80元啦而老王账户有30元啦老王高兴不得了咯具体操作 事务启动 mysql begin; Query OK, 0 rows affected (0.01 sec) 语句1 mysql update account set balancebalance-20 where id 1; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 语句2 mysql update account set balancebalance20 where id 2; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 提交 mysql commit; Query OK, 0 rows affected (0.01 sec)事务设置与查看 查看事务开启情况 mysql SHOW VARIABLES LIKE autocommit; ---------------------- | Variable_name | Value | ---------------------- | autocommit | ON | ----------------------要注意默认事务是自动提交的也就是每执行一条SQL就会提交。如果想执行完SQL还去操作事务那么就需要显示开启begincommitrollback。显示开启就是像之前语法一样要写出来。 自动提交很明显不方便我们对数据库的操作那怎么样才能避免自动提交 如何关闭自动提交 第一种 显式的的使用START TRANSACTION或者BEGIN语句开启一个事务。 第二种 把系统变量autocommit的值设置为OFF。 SET autocommit OFF; 关闭自动提交之后称为隐式提交 隐式提交 当我们使用START TRANSACTION或者BEGIN语句开启了一个事务或者把系统变量autocommit的值设置为OFF时事务就不会进行自动提交但是如果我们输入了某些语句之后就会悄悄的提交掉就像我们输入了COMMIT语句了一样这种因为某些特殊的语句而导致事务提交的情况称为隐式提交 一些隐式提交的语句 定义或修改数据库对象的数据定义语言Data definition language缩写为DDL 所谓的数据库对象指的就是数据库、表、视图、存储过程等等这些东西。当我们使用CREATE、ALTER、DROP等语句去修改这些所谓的数据库对象时就会隐式的提交前边语句所属于的事务。 BEGIN; SELECT ... # 事务中的一条语句 UPDATE ... # 事务中的一条语句 ... # 事务中的其它语句 CREATE TABLE ... # 此语句会隐式的提交前边语句所属于的事务隐式使用或修改mysql数据库中的表 隐式使用或修改mysql数据库中的表。 当我们使用ALTER USER、CREATE USER、DROP USER、GRANT、RENAME USER、REVOKE、SET PASSWORD等语句时也会隐式的提交前边语句所属于的事务。 事务控制或关于锁定的语句 事务控制或关于锁定的语句。 当我们在一个事务还没提交或者回滚时就又使用START TRANSACTION或者BEGIN语句开启了另一个事务时会隐式的提交上一个事务。 BEGIN; SELECT ... # 事务中的一条语句 UPDATE ... # 事务中的一条语句 ... # 事务中的其它语句 BEGIN; # 此语句会隐式的提交前边语句所属于的事务或者当前的autocommit系统变量的值为OFF我们手动把它调为ON时也会隐式的提交前边语句所属的事务。 或者使用LOCK TABLES、UNLOCK TABLES等关于锁定的语句也会隐式的提交前边语句所属的事务。 #加载数据的语句 比如我们使用LOAD DATA语句来批量往数据库中导入数据时也会隐式的提交前边语句所属的事务。 #关于MySQL复制的一些语句 使用START SLAVE、STOP SLAVE、RESET SLAVE、CHANGE MASTER TO等语句时也会隐式的提交前边语句所属的事务。 #其它的一些语句 使用ANALYZE TABLE、CACHE INDEX、CHECK TABLE、FLUSH、 LOAD INDEX INTO CACHE、OPTIMIZE TABLE、REPAIR TABLE、RESET等语句也会隐式的提交前边语句所属的事务
http://www.zqtcl.cn/news/973212/

相关文章:

  • 三亚网站建设方案鱼爪商标交易平台
  • phpwind 手机网站模板建立网站的英文短语
  • 年度网站建设工作总结制作微信小程序需要什么技术
  • wordpress打字不显示图片wordpress 访问优化
  • 太原网站建设方案咨询网站开发公司的选择
  • 广西网站建设设计大连嘉良建设有限公司网站
  • 白名单查询网站网站建设改变某个表格大小
  • 青岛网站开发公司电话百度投放
  • 唐山玉田孤树做宣传上什么网站百度推广有效果吗
  • 亚马逊网站特点佛山营销型网页设计
  • 网站建设 长沙开福区做百度移动网站排名软
  • 广州购物网站建设在线解压网站
  • 网站建设教学方法探究购物网站开发中查看订单的实现逻辑
  • 网站建设漂亮的模板西安网络优化大的公司
  • 如何免费简单建一个网站河北优化网站获客qq
  • 如何给网站做seo东莞网站建设星河
  • 什么叫门户类网站哪个网站能帮助做路书
  • 网站建站基础娄底网站推广
  • WordPress网站仿制光明建网站的公司
  • 可以做企业网站昆明seo怎么做
  • 西安那里做网站媒体软文发稿
  • 怎样做网站呢wordpress首页幻灯片尺寸
  • 青岛即墨网站网页设计营销型网站规划建设的七大要素
  • WordPress建站经验固原市住房和城乡建设厅网站
  • 可以查企业信息的软件wordpress换模板 seo
  • 网站广告怎么做wordpress封面图七牛
  • 设计师网站上海建设银行内部网站6
  • 网站接广告平台wordpress悬浮下拉
  • 国内网站做国外服务器网站建设的cms系统
  • 社交信息共享网站开发外包网站建设规划书的空间