当我通过phpmyadmin输入时,此查询有效。
INSERT INTO conversation (user_id) VALUES (?);
INSERT INTO conversation (conversation_id, user_id)
VALUES ((SELECT LAST_INSERT_ID()), ?)
然而,当我使用jdbc和java发送该查询时,我收到错误 -
您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在'INSERT INTO会话(conversation_id,user_id)VALUES((第1行的SELECT LAST_INSERT_')附近使用正确的语法
我正在使用完全相同的查询。我通过在PreparedStatement上调用toString并将其复制并粘贴到phpmyadmin并执行它来检查它并且工作正常。它只是无法通过java工作。任何想法都错了吗?
答案 0 :(得分:4)
默认情况下,您无法通过JDBC在一个查询中执行多个语句。将其拆分为两个调用,将allowMultiQueries
配置属性更改为True
。
JDBC Configuration Properties -
allowMultiQueries:
允许使用';'在一个语句中分隔多个查询(true / false),默认为'false',并且不影响addBatch()和executeBatch()方法,而是依赖rewriteBatchStatements。
默认值:
false