这是查询:
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;
异常(exception):
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;
有什么想法吗?
最佳答案
字符 ;
结束查询,那么这意味着 MySQL WorkBench IDE 中的一个新语句,但在 C++ 中的查询内部是不允许的,因为这样就变成了更多查询/语句..并且您会引发错误。
关于c++ - C++ 程序中的 SQL 查询语法错误,但在 MySQL Workbench 中有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37079921/