加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql事务处理

发布时间:2020-12-12 02:21:08 所属栏目:MySql教程 来源:网络整理
导读:Mysql中MyISAM存储引擎不支持事务,InnoDB和BDB支持事务 ? 事务是一组连续的数据库操作,而这组操作是不可分割的,也就是说这组操作要么全执行成功,要不就全部执行失败(实际不执行)。 事务有以下四个标准属性的缩写ACID,通常被称为: 原子性: 确保工作单

Mysql中MyISAM存储引擎不支持事务,InnoDB和BDB支持事务

?

事务是一组连续的数据库操作,而这组操作是不可分割的,也就是说这组操作要么全执行成功,要不就全部执行失败(实际不执行)。

事务有以下四个标准属性的缩写ACID,通常被称为:

原子性: 确保工作单元内的所有操作都成功完成,否则事务将被中止在故障点,和以前的操作将回滚到以前的状态。

一致性: 确保数据库正确地改变状态后,成功提交的事务。

隔离性: 使事务操作彼此独立的和透明的。

持久性: 确保提交的事务的结果或效果的系统出现故障的情况下仍然存在。

?

?MYSQL的事务处理主要有两种方法。
?? 1、用begin,rollback,commit来实现
? ?? ? begin 开始一个事务
? ?? ? rollback?事务回滚
? ?? ? commit??事务确认
? ?2、直接用set来改变mysql的自动提交模式
? ?? ??MYSQL默认是自动提交的,也就是你提交一个QUERY,它就直接执行!我们可以通过
? ???? set autocommit=0??禁止自动提交
? ???? set autocommit=1 开启自动提交
?????? 来实现事务的处理。
但注意当你用 set autocommit=0 的时候,你以后所有的SQL都将做为事务处理,直到你用commit确认或rollback结束,注意当你结束这个事务的同时也开启了个新的事务!按第一种方法只将当前的作为一个事务!

?

走一遍:

先新建一个innodb表

create table test(
id int(9)
)ENGINE=INNODB;

操作:

begin;
insert into test value(1);
2commit;

测试一下

3select * from test;
(此时结果中有3);
rollback test;
(此时结果中无3);

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读