MySQL Error number: 3979; Symbol: ER_NOT_ALLOWED_WITH_START_TRANSACTION; SQLSTATE: HY000

文档解释

Error number: 3979; Symbol: ER_NOT_ALLOWED_WITH_START_TRANSACTION; SQLSTATE: HY000

Message: START TRANSACTION clause cannot be used %s

错误说明

ER_NOT_ALLOWED_WITH_START_TRANSACTION 是MySQL的一个错误,当用户试图用START TRANSACTION语句的修改会话或全局配置参数时会抛出它。此错误显示,可以使用SET语句而不是START TRANSACTION语句来更改会话和全局范围参数值。

常见案例

对会话和全局参数进行设置时可能出现ER_NOT_ALLOWED_WITH_START_TRANSACTION错误。

比如,当我们尝试将MySQL实例中的SQL模式更改为ANSI的时候

START TRANSACTION;

SET sql_mode=ANSI;

COMMIT;

在上述代码中,运行SET语句时,MySQL会出现ER_NOT_ALLOWED_WITH_START_TRANSACTION错误。

解决方法

解决此错误的最简单方法就是将SET语句放在START TRANSACTION语句的前面,而不是放在其内部。

比如:

SET sql_mode=ANSI;

START TRANSACTION;

COMMIT;

这种修改方法可以让你轻松设置会话和全局范围参数值,而不会引发ER_NOT_ALLOWED_WITH_START_TRANSACTION错误。

你可能感兴趣的