网站大量收购闲置独家精品文档,联系QQ:2885784924

35.事务PHP必威体育精装版版.pptx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
35.事务PHP课件必威体育精装版版课案

事务 什么是事务? 一组系列的数据库操作语句组合在一起称为事务,譬如删除用户简历 首先,需要删除用户简历表里的数据 DELETE FROM cv WHERE id = 8; 其次,删除教育经历表中的数据 DELETE FROM edu WHERE cv_id = 8; 甚至,如果还有其他的关联表,也需要一起删除,但是如果第二行语句执行出错,那么会导致数据清理不彻底 BEGIN COMMIT CREATE TABLE transaction_test (     id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,      name VARCHAR(20) ); BEGIN 开始一个事务(START TRANSACTION;) COMMIT 提交事务 事务提交测试 BEGIN; INSERT INTO transaction_test (name) VALUES (andy); SELECT * FROM transaction_test; INSERT INTO transaction_test (name) VALUES (tom); SELECT * FROM transaction_test; INSERT INTO transaction_test (name) VALUES (jack); 打开两个mysql控制台,一个用来执行下面的事务操作,每次插入一条记录后执行SELECT看下是否有数据,假定名称为控制台A 事务提交测试 COMMIT; 打开另一个控制台,假设名称为控制台B,执行SELECT操作,查看表中是否有数据 SELECT * FROM transaction_test; 控制台A执行事务提交命令 控制台B中再次执行SELECT查看是否有数据 ROLLBACK ROLLBACK事务回滚 BEGIN; INSERT INTO transaction_test (name) VALUES (bob); SELECT * FROM transaction_test; ROLLBACK; 注意,任何的COMMIT或者ROLLBACK命令都会触发事务的结束 autocommit 在MySQL中,每一个查询,默认都是当做一个事务来处理的 所以autocommit默认是开启的 如果要关闭自动提交事务功能,需要在执行各种语句之前执行一条语句 SET AUTOCOMMIT = 0; 注意,一旦关闭自动提交,后面所有的查询都不会立刻执行,而是会等待COMMIT或者ROLLBACK的出现 注意,如果需要恢复自动提交,需要再执行 SET AUTOCOMMIT = 1; autocommit测试 SET AUTOCOMMIT = 0; INSERT INTO transaction_test (name) VALUES (lee); INSERT INTO transaction_test (name) VALUES (john); ROLLBACK; INSERT INTO transaction_test (name) VALUES (john); COMMIT; INSERT INTO transaction_test (name) VALUES (lee); 请思考,如果在控制台A中数据下面的语句,在控制台B中插入的是什么数据? autocommit测试 SET AUTOCOMMIT = 1; 请书写语句亲自测试一下,如果在最后再添加上下面的语句,lee能否最终插入到表中?

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档