2016-05-06 10 views
0

の作品は、クエリの:SQLクエリの構文エラーが、ここでの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のワークベンチで同じクエリを実行したときにそれは完全に正常に動作します。実際には、プログラムを実行する前にコンソールにクエリを出力し、それを正確にコピーしてワークベンチに貼り付けました。問題はありませんでした。

これは、コンソールから直接次のようになります。

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

これは** a **クエリではなく、8つのクエリ/コマンドです。どのようにサーバーに接続しているかによって、 "Execute"メソッド呼び出しごとに1つのクエリ/コマンドの制限が存在する可能性があります。私は、MySQL ODBCドライバには許可するかどうかの設定があり、異なるAPIにも同様の制限があると思います。 – Uueerdo

+0

@Uueerdoありがとう!次のnoob間違いに! – triggdev

答えて

0

文字列;クエリを終了すると、これはMySQL WorkBench IDEの新しい文を意味しますが、C++の中には新しい文が含まれているため、これ以上のクエリ/文..となってしまいます。

関連する問題