我的程序执行 INSERT 查询。当我运行它时,出现错误
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 'INSERT INTO words(lang1, lang2, category, lang2_code, user) SELECT 'ahoj', 'hell' at line 1
我尝试将实际语句打印到标准输出:
SET @lang:='Angličtina', @categ:='Nová';
INSERT INTO words(lang1, lang2, category, lang2_code, user)
SELECT 'ahoj', 'hello', c.id, l.id, 1 FROM categories c, languages l
WHERE c.name = @categ AND l.name = @lang;
如您所见,日志中的语句已更改。 'hell'
而不是 'hello'
。当我将其复制到 mysql 命令行并执行时,它工作得很好,所以我认为问题出在 JDBC 的某个地方。
最佳答案
这不是一个声明。如果您想一次使用多个语句,请不要使用 PreparedStatement
,而是使用 addBatch
,但似乎在这里您应该简单地发出 2 个 JDBC 语句,一前一后。
关于Java + MySQL - 语法错误但语句正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17125799/