繁体   English   中英

为什么我可以在 mysql 中使用没有任何 START TRANSACTION 或 COMMIT/ROLLBACK 且 autocommit = 0 的 INSERT?

[英]Why can I use INSERT without any START TRANSACTION nor COMMIT/ROLLBACK with autocommit = 0 in mysql?

因此,我试图更多地了解 MySQL 中的自动提交语句,但在使用SET autocommit = 0;之后,我无法理解为什么。 并尝试在没有任何START TRANSACTION且最后没有COMMIT/ROLLBACK的情况下运行INSERT ,它仍将其插入表中?

据我了解,如果自动提交等于 1,它将自动提交,因此它会有意义,但我将自动提交设置为零,因此如果我不使用任何START TRANSACTIONCOMMITROLLBACK块包围插入它不应该工作正确的?

我知道有一些 DML 会自动提交,而且我知道 DDL 语句也会这样做,但在这种情况下, INSERT似乎不是任何这样做的 DML 语句。

代码如下:

SET autocommit = 0;
SELECT @@autocommit; --It returns 0

-- No START TRANCATION
INSERT INTO example(first_name, last_name) VALUES ('TEST', 'TSET');
-- No COMMIT nor ROLLBACK

有任何想法吗?

提前致谢!

您在当前 session 中看到这些行 - 但您不会从另一个 session 中看到它们。

看:

在此处输入图像描述

比较时间戳...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM