【问题标题】:auto_commit is still enabled although I prepend "START TRANSACTION" in mysql尽管我在 mysql 中添加了“START TRANSACTION”,但仍然启用了 auto_commit
【发布时间】:2022-07-22 17:39:18
【问题描述】:

当我查看MySQLMariaDB的官方文档时,
他们说当使用 START TRANSACTIONauto_commit 被禁用。
但是在我的代码中它似乎无法正常工作。我做错什么了吗?任何帮助将不胜感激!


SELECT @@autocommit; -- 1 (enabled)
START TRANSACTION;
SELECT @@autocommit; -- 1 (I thought it should be zero.)
COMMIT;

【问题讨论】:

  • @@autocommit 基于配置文件处于全局级别,因此结果有意义

标签: mysql


【解决方案1】:

是的,自动提交已禁用。但期权价值没有改变。

thread 1                                 |  thread 2
=========================================|==============================================
SELECT @@autocommit; -- 1 (enabled)      |
START TRANSACTION;                       |
SELECT @@autocommit; -- 1                |
    -- but autocommit is disabled !!!    |
INSERT INTO test (id) SELECT 1;          |
                                         |  SELECT * FROM test;   -- empty output
COMMIT;                                  |
                                         |  SELECT * FROM test;   -- row id=1 returned

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多