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

网站建设 php庄行网站建设

网站建设 php,庄行网站建设,网站建设必备的功能模块,什么软件可以做网站html事务 一、事务 (一)什么是事务: MySQL数据库事务:(database transaction): 事务是由一组SQL语句组成的逻辑处理单元,这些操作要么全做要么全不做,是一个不可分割的工作单位。 ※…

事务

一、事务

(一)什么是事务:

MySQL数据库事务:(database transaction): 事务是由一组SQL语句组成的逻辑处理单元,这些操作要么全做要么全不做,是一个不可分割的工作单位。

※ MySQL中只有INNODB和BDB类型的数据表才能支持事务处理!其他的类型不支持!

数据库默认事务是自动提交的,也就是发一条 sql 它就执行一条。如果想多条 sql 放在一个事务中执行,则需要使用事务进行处理。当我们开启一个事务,并且没有提交,MySQL 会自动回滚事务,或者我们使用 rollback 命令手动回滚事务。

(二)为什么使用事物:

通过将一组操作组成一个操作单元,执行时,要么全部成功,要么全部失败的单元。

例如:A账户汇款给B账户1000元。

A账户-1000

B账户+1000

以上操作对应数据库为两个update。这两个操作属于一个事物。否则,可能会出现A账户钱少了,B账户钱没增加的情况;或者因为A账户的余额不足(少于1000)不能扣除1000,而B账户却增加1000。

(三)事务四大特性:

事务是必须满足4个条件(ACID)

原子性(Autmic):事务必须是原子工作单元,不能被分隔的,事务中的操作要么全部执行,要么全都不执行,不能只完成部分操作。

一致性(Consistency):事务开始之前,数据库处于一致性的状态;事务结束后,数据库必须仍处于一致性状态。数据库一致性的定义是由用户负责的。例如,在银行转账中,用户可以定义转账前后两个账户金额之和保持不变。

  隔离性(Isolation):一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰,这些通过锁来实现。

  持久性(Durability):指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。

事务的 ACID 原则保证了一个事务或者成功提交,或者失败回滚,二者必居其一。因此,它对事务的修改具有可恢复性。即当事务失败时,它对数据的修改都会恢复到该事务执行前的状态。

(四)MySQL事务处理的方法:

用BEGIN或START TRANSACTION,ROLLBACK,COMMIT来实现事务

START TRANSACTION | BEGIN  

#开启事务

COMMIT 

#提交当前事务,执行永久操作。

ROLLBACK 

#回滚当前事务到开始点,取消上一次开始点后的所有操作。

MySQL默认是自动提交的,也就是你提交一个SQL QUERY,它就直接执行!

SET AUTOCOMMIT = {0 | 1} 设置事务是否自动提交,默认是自动提交的。

0:禁止自动提交

1:开启自动提交。

注意:MySQL中只有INNODB和BDB类型的数据表才能支持事务处理!其他的类型是不支持!

MySQL> set autocommit=0;

MySQL> delimiter //

MySQL> start transaction;

    -> update books set bName="ccc" where bId=1;

    -> update books set bName="ddd" where bId=2;

    -> commit; //

MySQL> delimiter ;

测试,查看是否完成修改:

MySQL> select bName from books where bId=1 or bId=2;

我们测试回滚操作,首先看我们的数据库存储引擎是否为innodb

MySQL> show create table books;

为MyISAM无法成功启动事务,虽然提交了,却无法回滚

修改数据库存储引擎为innodb

MySQL> alter table books engine=innodb;

MySQL> alter table category engine=innodb;

MySQL> show create table books;

MySQL> select bName from books where bId=1 or bId=2;

重新开启事务,并测试回滚

MySQL> delimiter //

MySQL> start transaction;

    -> update books set bName="HA" where bId=1;

    -> update books set bName="LB" where bId=2;

    -> commit //

MySQL> delimiter ;

MySQL> select bName from books where bId=1 or bId=2;

MySQL> rollback;  #回滚

Query OK, 0 rows affected (0.00 sec)

查看结果:  

MySQL> select bName from books where bId=1 or bId=2;

回滚失败,因为我们commit已经提交了,并且执行成功了

这次开启事务,不提交

MySQL> delimiter //

MySQL> start transaction; 

MySQL> update books set bName="AH" where bId=1; 

MySQL> update books set bName="BL" where bId=2 

MySQL> //   #开启事务,不提交

MySQL> delimiter ;

MySQL> select bName from books where bId=1 or bId=2;

回滚:

MySQL> rollback;

MySQL> select bName from books where bId=1 or bId=2;

回滚成功

可以看到,执行rollback回滚命令后,rollback使数据表回滚到了事物开始前的状态。很多时候一个事物会包含多条语句,而出现问题需要回滚时,并不一定是要回滚到begin之前的状态,有可能是某条语句执行后的状态,这时要使用savepoint定义回滚点,rollback决定回滚到的位置。

例如:以test_db数据库的stu表为例,表结构如下所示:

关闭MySQL的自动提交功能:

MySQL> set autocommit=0;

MySQL> begin;

MySQL> insert into stu values(1,'berry');

MySQL> savepoint s1;

MySQL> insert into stu values(2,'linda');

MySQL> savepoint s2;

执行第一条插入语句后,定义了回滚点s1,执行第二条插入语句后,定义了回滚点s2,如果后面直接使用rollback命令,这两条插入语句都将失效,现在使用回滚点进行回滚。

执行回滚前,查询stu表中数据:

执行rollback回滚到s1回滚点

回滚到了s1,第一条插入的数据可以查询出来,但是并没有提交,如果需要保存到数据库,使用commit命令提交。


文章转载自:

http://1sBZrO9L.qbjrL.cn
http://qzhbgaKm.qbjrL.cn
http://k98x7NO4.qbjrL.cn
http://1OnQx4ob.qbjrL.cn
http://qZyOq4od.qbjrL.cn
http://ownzrWhq.qbjrL.cn
http://cOXp49Y7.qbjrL.cn
http://0HKlzSFU.qbjrL.cn
http://FxeJu21p.qbjrL.cn
http://e0rLP6PJ.qbjrL.cn
http://9fFNM2o8.qbjrL.cn
http://dOoxX85J.qbjrL.cn
http://XviLRbcm.qbjrL.cn
http://ZTT1lfGA.qbjrL.cn
http://5FvR9cNB.qbjrL.cn
http://PXSuvrg1.qbjrL.cn
http://yuymTym6.qbjrL.cn
http://eLleoJZO.qbjrL.cn
http://SXzSVyJb.qbjrL.cn
http://jM1m9Pkp.qbjrL.cn
http://D2RgmpDp.qbjrL.cn
http://6Z3oAmMC.qbjrL.cn
http://QaZuobk4.qbjrL.cn
http://9ZdvRaOb.qbjrL.cn
http://4IBEf18e.qbjrL.cn
http://9hwWPeT0.qbjrL.cn
http://RR4XQG3I.qbjrL.cn
http://rPdKfgDa.qbjrL.cn
http://wphubKO2.qbjrL.cn
http://itsboCUu.qbjrL.cn
http://www.dtcms.com/wzjs/767458.html

相关文章:

  • 四川华泰建设集团网站潭州学院网站建设报名
  • 网站seo搜索引擎优化教程张雪峰谈电子商务
  • 桂阳城乡建设局网站seo优化网站优化排名
  • 网站模板套用教程微网站开发手机模拟器
  • 制作网站设计作品网站推广计划表
  • 网站设计个人心得五棵松网站建设
  • 阿里云服务器创建网站wordpress内容页插件
  • 一个空间怎么放多个网站吗网站建设开票税收分类
  • 网站的换肤功能怎么做搭建网站干什么
  • 佛山seo关键词排名seo专员是什么职位
  • 花溪网站建设创建全国文明城市标语口号
  • 企业vi品牌设计郑州粒米seo顾问
  • 两性做受技巧视频网站常州网站推广软件厂家
  • wordpress手机端网站模板网站宣传工作
  • 重庆网站建设莉蛋糕网站网页设计
  • 帮企业做网站前景怎么样安阳区号码
  • 帝国cms 做的完整的网站有没有承德网站建设有限公司
  • 毕业设计代做网站价格如何拍做美食的视频网站
  • 网站共用数据库手机app软件开发哪里好
  • 网站建站建设公司全球华设计大奖
  • 做校园网站搜索引擎中 哪些网站可以获得更好的排名
  • 象屿做核放单的网站苏州设计公司排行榜
  • 高端网站制造Wordpress大前端DUX5.0主题
  • 自建网站做电商中恒建设职业技术培训学校网站
  • wordpress 大学网站做个网站一年要多少钱
  • 网站托管维护千川推广官网
  • 网站建设与管理多选题竞价托管咨询微竞价
  • 中国太空空间站外贸推广平台怎么做
  • 公司需要做网站吗百度站长工具网站
  • 北京做网站推广怎么买速成网站