Java + MySQL - 语法错误但语句正确

标签 java mysql jdbc insert

我的程序执行 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/

相关文章:

PHP 在查询中以表单形式显示 href

mysql - 如何用一条select语句取出多个ID?

java - 通过 Java 对 SQl 的多个打开/关闭连接会影响性能吗?

java - JPA:如何插入将 PK 设置为 MAX(PK) + 1

java - 将Java连接到MySQL数据库

java - 从多个整数列表中找到 K 个最高和

java - Android 6.0 中的 Play 商店中不要求更新 apk 的权限

java - 无需安装即可在 Windows 中获取 Oracle Java 1.8

java - 将值从 jtable 发送到 sql 时出现 SQL 异常

mysql - 文件未找到异常 : The file "MySql.Data.resources" could not be found