Ошибка синтаксиса SQL-запроса в программе на C ++, но работает в MySQL Workbench

Вот запрос:

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 Workbench. Фактически, я напечатал запрос на консоль до того, как программа его выполнила, точно скопировал его и вставил в рабочую среду, и он не выполнил никаких проблем.

Вот как это выглядит прямо из консоли:

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;

Есть идеи?

0

Решение

Характер ; завершить запрос, то это означает новый оператор в MySQL WorkBench IDE, но внутренний запрос в C ++ не разрешен, потому что так стало больше запросов / операторов … и вы вызываете ошибку.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]