1
13
检查您的数据库类型是否等于innodb。总之,您必须检查您的数据库是否支持事务。 |
2
4
|
3
3
我将输入此作为答案,因为注释太小,无法包含以下内容: PDO只是各种低级数据库接口库的包装器。如果低级图书馆没有抱怨,PDO也会。因为MySQL支持事务,所以任何事务操作都不会返回语法错误或其他错误。您可以在事务中使用myisam表,但对其执行的任何操作都将像自动提交仍然处于活动状态一样执行:
如您所见,即使事务处于活动状态,并且在myisam表上执行了一些操作,也不会引发任何错误。 |
4
2
mysql不支持myisam表类型的事务,不幸的是,这是默认的表类型。 如果需要事务,则应切换到innodb表类型。 |
5
0
可能发生这种情况的另一个原因是某些类型的SQL语句会导致立即自动提交。我有一个大型脚本,它运行在一个立即提交并忽略该事务的事务中。我最终发现这是因为
导致自动提交的语句类型有:
更多信息和完整列表可在此处找到: https://dev.mysql.com/doc/refman/8.0/en/implicit-commit.html 如果您只对特定的脚本有这个问题,并且您确定您使用的是InnoDB,那么您可能需要查看脚本中的任何SQL语句是否与这些语句匹配。 |
TheStoryCoder · Yii2:是否在事务外部执行查询? 6 年前 |
Ali · 将SQL事务用于单个SQL查询[已关闭] 6 年前 |
Marcus Cemes · 选择。。。用于更新在提交后选择旧数据 6 年前 |