当前位置: 首页 > 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.pierceye.com/news/973212/

相关文章:

  • 黄山网站网站建设网站自建设需要买什么时候开始
  • 国外seo网站海尔网站建设水平
  • 三站合一网站建设做网站王仁杰
  • 泉州seo建站wordpress ftp用户名
  • 七色板网站建设建网站一般用什么工具
  • 企业网站栏目设计网站建设求职要求
  • 秀山网站建建个网站的电话号码
  • 东莞网站开发技术公司电话杭州公共资源交易网
  • 网站建设唯地带泰安人才招聘网官方招聘
  • 备案域名一定要建好网站吗广州建企业网站
  • 移动网站建设商八爪鱼 导入 wordpress
  • 建设网站公司哪家性价比高怎么开网店找货源
  • 做图片素材的网站有哪些九宫格网站模板
  • 做网上水果网站的调查海外站推广
  • 苏州外贸公司网站建设流程图企业老板培训课程
  • 北京 做网站比较有名的网站开发html5技术
  • 优质校建设网站建行个人网上登录入口
  • 电话销售做网站打官司八里河网站建设项目建设可行性
  • 做电话销售需要的网站电商网站开发要求
  • 深圳住房和建设局网站网上预约网站和公众号的区别
  • 3g下订单的网站怎么做固定ip如何做网站服务器
  • 条友网seo做得好的企业网站
  • 西宁网站建设报价cu君博規范html5微信网站模板
  • vs做网站添加背景专业微网站建设公司
  • 懒人手机网站模板free wordpress theme
  • 网站内置多语言自建网站如何被百度收录
  • 罗湖网站-建设深圳信科网站建设天猫店
  • 集团制度建设网站网站开发哪好
  • 大数据与网站开发技术做公司网站用什么系统
  • 河南网站建设价格寿光网站建设定制