MySQL 是否在具有自动提交功能的单个 DML 修改数据中使用事务?
Does MySQL use transaction in a single DML modified data with autocommit?
我对事务和自动提交感到困惑。但是没有文档解释 MySQL autocommit 的作用。
如果自动提交,每个INSERT UPDATE DELETE
语句将立即生效。 MySQL 是否会为此自动启动事务?
如果不是,MySQL 是做什么的?与交易有什么区别?
在我看来:
声明
INSERT INTO ...
自动提交等于
START TRANSACTION;
INSERT INTO ...;
COMMIT;
关闭自动提交。
任何时候任何条件下的两个语句执行相同的操作。
对吗?
首先,您必须知道,大多数 MySQL 存储引擎不支持事务。例如,InnoDB 支持,但 MyISAM 不支持。
在 InnoDB 中,您可以通过 2 种方式使用事务:
隐式
开始交易;
INSERT/UPDATE/DELETE
提交;
明确
通过 SET 自动提交关闭
两者提供相同的结果
我对事务和自动提交感到困惑。但是没有文档解释 MySQL autocommit 的作用。
如果自动提交,每个INSERT UPDATE DELETE
语句将立即生效。 MySQL 是否会为此自动启动事务?
如果不是,MySQL 是做什么的?与交易有什么区别?
在我看来:
声明
INSERT INTO ...
自动提交等于
START TRANSACTION;
INSERT INTO ...;
COMMIT;
关闭自动提交。
任何时候任何条件下的两个语句执行相同的操作。
对吗?
首先,您必须知道,大多数 MySQL 存储引擎不支持事务。例如,InnoDB 支持,但 MyISAM 不支持。
在 InnoDB 中,您可以通过 2 种方式使用事务:
隐式
开始交易;
INSERT/UPDATE/DELETE
提交;明确
通过 SET 自动提交关闭
两者提供相同的结果