【发布时间】:2016-09-01 23:20:05
【问题描述】:
这是查询:
START TRANSACTION;
SET FOREIGN_KEY_CHECKS = 0;
SET UNIQUE_CHECKS = 0;
SET AUTOCOMMIT = 0;
INSERT INTO n2 (idbin,vertices) VALUES("0",2),("1",2);
SET UNIQUE_CHECKS = 1;
SET FOREIGN_KEY_CHECKS = 1;
COMMIT;
例外:
MySQL ERR: SQLException in gen_simple_graphs.cc(printSqlException) on line 404
MySQL ERR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET FOREIGN_KEY_CHECKS = 0;SET UNIQUE_CHECKS = 0;SET AUTOCOMMIT = 0;INSERT INTO ' at line 1 (MySQL error code: 1064, SQLState: 42000 )
当我在 MySQL 工作台中运行相同的查询时,它工作得非常好。事实上,我在程序执行之前将查询打印到控制台,准确复制并粘贴到工作台中,运行没有问题。
这是直接从控制台看到的样子:
START TRANSACTION;SET FOREIGN_KEY_CHECKS = 0;SET UNIQUE_CHECKS = 0;SET AUTOCOMMIT = 0;INSERT INTO n2 (idbin,vertices) VALUES("0",2),("1",2);SET UNIQUE_CHECKS = 1;SET FOREIGN_KEY_CHECKS = 1;COMMIT;
有什么想法吗?
【问题讨论】:
-
那不是a查询,是8个查询/命令;根据您连接到服务器的方式,每个“执行”方法调用可能会限制一个查询/命令。我相信 MySQL ODBC 驱动程序有一个是否允许的设置,不同的 API 可能有类似的限制。
-
@Uueerdo 谢谢!继续下一个菜鸟错误!
标签: c++ mysql exception transactions workbench