MySQL是否在使用自动提交的单个DML修改数据中使用事务?

时间:2016-04-29 08:36:27

标签: mysql transactions innodb

我对交易和自动提交感到困惑。但是没有文件解释MySQL自动提交的内容。

如果自动提交,则每个INSERT UPDATE DELETE语句将立即生效。 MySQL会自动启动事务吗?

如果没有,MySQL会做什么?交易有什么区别?

在我看来:

声明

  

INSERT INTO ...

自动提交等于

  

START TRANSACTION;

     

INSERT INTO ...;

     

COMMIT;

关闭自动提交。

任何条件下的两个陈述都采取相同的行动。

是不是?

1 个答案:

答案 0 :(得分:0)

首先,您必须知道,大多数MySQL存储引擎都不支持事务。例如,InnoDB支持,但MyISAM - 不支持。

在InnoDB中,您可以通过2种方式使用交易:

  • 隐式

    开始交易;
    INSERT / UPDATE / DELETE
    COMMIT;

  • 显式

通过SET autocommit off

它们都提供相同的结果