Вот запрос:
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;
Есть идеи?
Характер ;
завершить запрос, то это означает новый оператор в MySQL WorkBench IDE, но внутренний запрос в C ++ не разрешен, потому что так стало больше запросов / операторов … и вы вызываете ошибку.
Других решений пока нет …