autocommit和start transaction

简介: 在存储过程中使用事务时,通常会显示设置事务自动提交为0 (set autocommit=0;)这里极有可能是个坑,在同一个连接中,事务执行完或存储过程执行完后,autocommit仍为0,如果后面没有commit语句则可能导致数据丢失;对应mysql官网,没有解释很清楚 set autocommit =0 和 start transaction,是否必须结合使用,但有一句是,s

在存储过程中使用事务时,通常会显示设置事务自动提交为0 (set autocommit=0;)这里极有可能是个坑,在同一个连接中,事务执行完或存储过程执行完后,autocommit仍为0,如果后面没有commit语句则可能导致数据丢失;对应mysql官网,没有解释很清楚 set autocommit =0 和 start transaction,是否必须结合使用,但有一句是,start transaction 有隐含的 设置autocommit为0 作用,原句为: To disable autocommit mode implicitly for a single series of statements, use the START TRANSACTION statement ,所以可以去掉set autocommit=0 ,如果非得使用时在commit和rollback 后,将 autocommit设置为1

目录
相关文章
|
5月前
|
算法 关系型数据库 MySQL
transaction
【7月更文挑战第21天】
65 7
|
5月前
|
关系型数据库 MySQL Java
异常:no transaction is in progress
异常:no transaction is in progress
150 0
The transaction associated with this command is not the connection‘s active
The transaction associated with this command is not the connection‘s active
219 0
|
Java 关系型数据库 MySQL
定时任务Quzrtz:Failed to override connection auto commit/transaction isolation
定时任务Quzrtz:Failed to override connection auto commit/transaction isolation
142 0
|
关系型数据库 MySQL
|
关系型数据库 MySQL
MySQL的Retrieved_Gtid_Set、Executed_Gtid_Set哪里来
验证Retrieved_Gtid_Set、Executed_Gtid_Set哪里来 relay_log_recover=0 slave mysql> start slave; shQuery OK, 0 rows affected (0.
7371 0
|
SQL JavaScript 关系型数据库
深入理解MySQL 5.7 GTID系列(四):mysql.gtid_executed&PREVIOUS GTID EVENT
之所以把MySQL.GTID_EXECUTED表的作用和PREVIOUS GTID EVENT的改变放到一起进行描述是因为它们后面文章探讨的基础。这部分使用到了我自己使用C语言写的原生BINLOG解析工具INFOBIN。
3550 0
|
SQL 数据库连接 C#