mysql - 为什么我可以在 mysql 中使用没有任何 START TRANSACTION 或 COMMIT/ROLLBACK 且 autocommit = 0 的 INSERT?
问题描述
所以我试图更多地了解 MySQL 中的 autocommit 语句,但我很难理解为什么,在我使用SET autocommit = 0;
并尝试运行一个INSERT
没有任何START TRANSACTION
和没有COMMIT/ROLLBACK
的最后它仍然将它插入表中?
据我了解,如果自动提交等于 1,它将自动提交,因此这是有道理的,但我将自动提交设置为零,因此如果我不使用任何START TRANSACTION
与COMMIT
或ROLLBACK
阻止插入它不应该正常工作?
我知道有一些 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
有任何想法吗?
提前致谢!
解决方案
推荐阅读
- reactjs - 如何使用 VictoryChart 为 VictoryBar 绘制轴
- flutter - 如何在颤振 sqflite 中显示字符串值
- javascript - 如何防止桌子上随机生成的图像在同一位置生成?
- python - 如何删除除数字之外的所有内容(韩国公司的网络爬取市值)
- react-native - gmail 应用程序中的移动深层链接到特定配置文件
- javascript - 未执行 JQuery 函数之一
- javascript - 为什么 map、foreach 和 reduce 不使用 Symbol.iterator 上的迭代器函数?
- javascript - 当模型值为空时处理剃刀 foreach?
- c# - 最近更新后无法构建我的 Xamarin.Forms 项目
- prolog - 有没有办法在 Prolog 中创建数学表达式?