文档章节

mysql关闭autocommit带来的坑

messud4312
 messud4312
发布于 2015/05/21 18:01
字数 245
阅读 3410
收藏 0

我们打开两个mysql client,首先关闭autocommit。然后分别同时按照从上到下执行,每条语句后面都标上了执行顺序。

mysql> set autocommit = 0;  #1         │mysql> set autocommit = 0;  #2
Query OK, 0 rows affected (0.00 sec)   │Query OK, 0 rows affected (0.00 sec)
                                       │
mysql> insert into user values ("Stupid│mysql> select * from user;  #4
 ET");   #3                            │Empty set (0.00 sec)
Query OK, 1 row affected (0.03 sec)    │
                                       │mysql>
mysql> commit; #5                      │mysql>
Query OK, 0 rows affected (0.02 sec)   │mysql>
                                       │mysql>
mysql> select * from user where name = │mysql> select * from user where name =
"Stupid ET";  #6                       │ "Stupid ET";  #7
+-----------+                          │Empty set (0.00 sec)
| name      |                          │
+-----------+                          │mysql>
| Stupid ET |                          │
+-----------+                          │
1 row in set (0.00 sec)                │

可以看到右边的client里面是查不到新加入的name为”Stupid ET”的用户。

因为在执行#4这条命令的时候,导致右边的client自动进入了一个事务了,而此时数据库是没有的name为”Stupid ET”这个用户的。所以就导致即使数据库里面存在name为”Stupid ET”的记录,右边的client也查不到。


© 著作权归作者所有

共有 人打赏支持
上一篇: mysql innodb锁机制
下一篇: mysql事务 锁
messud4312
粉丝 6
博文 130
码字总数 102888
作品 0
海淀
后端工程师
私信 提问
mysql之innodb引擎使用方法

前言 闲来无事做不如MySQL。 一.简介: 1.Linux下使用MySQL数据库时,为了支持事务操作需要用到InnoDB引擎,对于表中处理的插入,更新等操作失败时 ,回滚前面不应该完成的操作是必须的. 2.一般M...

李伟铭k
2018/07/09
0
0
基于binlog的mysql数据恢复

使用了python-mysql-replication 这个库做mysql数据库的恢复.插桩测试中准备数据.由于是多系统交互,业务较为复杂,所以模拟操作,然后抽取数据流动变化,记录下来.下次直接操作数据库,达到快速新...

豆泥碗
2014/02/21
0
0
MySQL事务autocommit自动提交设置

MySQL提交模式 MySQL默认操作模式是 autocommit 自动提交模式。此模式下,除非显式的声明使用事务,即: 开始一个事务,否则每个操作都将被当做一个单独的事务自动提交。 MySQL提交模式查询与...

前世疯狂
2018/03/23
0
0
mysql start transaction 和 set autocommit = 0 的区别

1、set autocommit = 0 关闭当前会话中事务的自动提交,需要手动 commit 或者 rollback,相当于开启一个全局的事务。在 mysql 的事务中,默认 autocommit = 1,每一次 sql 操作都被认为是一个...

big_cat
2016/11/10
304
0
【整理】MySQL 之 autocommit

mysql 默认是开启 auto commit 的。可以通过如下命令查看 session 级别和 global 级别的设置: mysql> select @@session.autocommit;+----------------------+| @@session.autocommit |+----......

摩云飞
2013/10/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

漏洞防御与修复工作

漏洞管理工作是企业安全建设必不可少的一环,在风险管理工作中,漏洞管理能够防患于未然,企业对漏洞管理有着广泛的基础建设和实践经验。但随着攻防技术的发展,传统漏洞管理的安全技术和管理...

linuxprobe16
7分钟前
0
0
MicroPython技术及应用前景

1 Micropython技术是什么? MicroPython极精简高效的实现了Python3语言。它包含Python标准库的一小部分,能在单片机和受限环境中运行。 1.1 MicroPython发展 由剑桥大学的理论物理学家乔治....

bodasisiter
13分钟前
0
0
跟我学Spring Cloud(Finchley版)-13-通用方式使用Hystrix

本节详细讲解使用Hystrix的通用方式。 简介 Hystrix是由Netflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提升系统的可用性与容错性。Hystrix主要...

周立_ITMuch
21分钟前
0
0
🛠️Hanjst/汉吉斯特更新加JavaScript运行时优化等

这是 Hanjst/汉吉斯特 发布以来的首个主要升级更新版本。这次的主要升级更新的内容包括移除HTML Comments注释行, 优化在 Hanjst include模板文件时的JavaScript运行时环境。 Hanjst 在设计和...

wadelau
今天
2
0
OSChina 周六乱弹 —— 舔狗是没有好下场的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @我没有抓狂 :#今天听什么# #今天听这个# 分享 Nirvana 的歌曲《Smells Like Teen Spi...》 《Smells Like Teen Spi...》- Nirvana 手机党少...

小小编辑
今天
438
13

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部