C# mysql 处理 事务 回滚 提交】的更多相关文章

MySqlConnection myCon; void iniMysql() { //连接数据库 myCon = new MySqlConnection("server=127.0.0.1;username=zpcmysql;password=zpc;database=test;SslMode=none;charset=utf8;"); if (!myCon.Ping()) { myCon.Open(); } // MySqlCommand cmd = myCon.CreateComm…
<?php $conn = mysql_connect('127.0.0.1', 'root', ''); mysql_select_db('msc_test'); mysql_query('SET NAMES UTF8'); # 开启事务 mysql_query("START TRANSACTION"); $sql1 = "INSERT INTO `msc_user` VALUES ('1', 'msc', '男', '1991')"; $sql2 = &q…
模拟条件:第一个表插入成功,但是第二个表插入失败,回滚.第一个表插入成功,第二个表插入成功,执行.第一个表插入失败,第二个表插入成功,回滚.第一个表插入失败,第二个表插入失败,回滚.以上情况都需要回滚 事物回滚特性:要么全做,要么不做.不能一个表回滚,另一个表不回滚 回滚后我们发现id还是增加了,比如当前数据库清空(不是删除),清空后id从1开始自增.回滚后1次后,我们手动插入值发现id不是1而是2.原因:插入事物不是真正的插入磁盘而是插入内存中,id的自增也是保存在内存中的,所以每次需要在内存…
事务回滚后,自增ID仍然增加,回滚后,自增ID仍然增加.比如当前ID是7,插入一条数据后,又回滚了.然后你再插入一条数据,此时插入成功,这时候你的ID不是8,而是9.因为虽然你之前插入回滚,但是ID还是自增了. 如果你认为自增ID不应该被事务化,那么其他事务不得不等待着,检查自增ID是被使用还是被回滚,这就导致阻塞. 比如下面的例子,A表使用自增ID. User ------------ begin transaction insert into A ... insert into B ...…
1.存储引擎(处理表的处理器) 1.基本操作 1.查看所有存储引擎 mysql> show engines; 2.查看已有表的存储引擎 mysql> show create table 表名; 3.创建表指定存储引擎 create table 表名(...)engine=myisam; 4.已有表修改存储引擎 alter table 表名 engine=innodb; 2.锁 1.目的 :解决客户端并发访问的冲突问题 2.锁分类 1.锁类型 1.读锁(共享锁) select :加读锁之后别人不…
应用场景:   银行取钱,从ATM机取钱,分为以下几个步骤       1 登陆ATM机,输入密码:    2 连接数据库,验证密码:    3 验证成功,获得用户信息,比如存款余额等:    4 用户输入需要取款的金额,按下确认键:    5 从后台数据库中减掉用户账户上的对应金额:    6 ATM吐出钱:    7 用户把钱拿走.    对于上面的取钱这个事情,如果有一步出现错误的话,那么就会取消整个取钱的动作,但是如果在第5步,系统后台已经把钱减了,但是ATM机没有取出来,那么就应用到m…
1. 在操作事务的时候,如果发现当前事务操作是不合理的,此时只要还没有提交事务,就可以通过回滚取消当前事务,接下来就针对事务的回滚进行详细讲解. 2. 为了演示回滚操作,在上一个笔记案例基础之上,此时a账户有1000元,b账户也有1000元,开启一个事务,通过update语句将a账户的100元转给b账户,具体语句,如下: start transaction; where name='a'; where name='b'; 上述语句执行成功之后,使用select语句查询a和b账户,如下: 此时a账…
mysql索引 索引相当于书的目录优点:加快数据的查询速度缺点:占物理存储空间,添加,删除,会减慢写的速度 查看表使用的索引 mysql> show index from 表名\G;(\G分行显示) mysql> show index from mysql.db; +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+-…
主要内容: ***数据定义语言DDL重点 ***数据操纵语言DML重点 数据查询语言DQL重点 ---事务控制语言TCL ---数据库控制语言DCL ---主键(primary key) ---数据冗余(另外建表,把某个外建与另一个表的主键建立关系联系起来) ---事务 ***数据定义语言DDL重点 定义:DDL(Data Definition Language):负责数据结构定义与创建数据库对象的语言. 负责数据结构定义与创建数据库对象的语言. 常用的有create alter drop  …
什么是数据库事务 数据库事务是指作为单个逻辑工作单元执行的一系列操作. 设想网上购物的一次交易,其付款过程至少包括以下几步数据库操作: · 更新客户所购商品的库存信息 · 保存客户付款信息--可能包括与银行系统的交互 · 生成订单并且保存到数据库中 · 更新用户相关信息,例如购物数量等等 正常的情况下,这些操作将顺利进行,最终交易成功,与交易相关的所有数据库信息也成功地更新.但是,如果在这一系列过程中任何一个环节出了差错,例如在更新商品库存信息时发生异常.该顾客银行帐户存款不足等,都将导致交易失…