由于mysql插件式存储架构,导致开启binlog后,事务提交实质是二阶段提交,通过两阶段提交,来保证存储引擎和二进制日志的一致.
本文仅讨论binlog未打卡状态下的提交流程,后续会讨论打开binlog选项后的提交逻辑.
解决方案之一,就是把你的所有操作放在一个连接中执行完毕.mysql
-h${HOSTNAME}
-P${PORT}
-u${USERNAME}
-p${PASSWORD}
${DBNAME}
x.sqlset
AUTOCOMMIT=0;start
transaction;在X.sql
中你可以写入语句.中间部分是一些数据库的操作,如移表,删除等commit;
mysqli::autocommit -- mysqli_autocommit — 打开或关闭本次数据库连接的自动命令提交事务模式
说明
面向对象风格
mysqli::autocommit ( bool $mode ) : bool
过程化风格
mysqli_autocommit ( mysqli $link , bool $mode ) : bool
打开或关闭本次数据库连接的自动命令提交事务模式.
如需要确认当前连接的自动事务提交状态,可执行这个SQL请求SELECT @@autocommit.
参数
link
仅以过程化样式:由mysqli_connect() 或 mysqli_init() 返回的链接标识.
mode
Whether to turn on auto-commit or not.
返回值
成功时返回 TRUE, 或者在失败时返回 FALSE.
注释
Note:
这个方法不会在不支持事务处理的表单查询中生效,如MyISAM或 ISAM.
以上就是土嘎嘎小编为大家整理的怎么关闭mysql事务相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!