我试图创建在一列和参考插入新行2条MySQL语句的问题是同一行中的另一个,就像这样:与LAST_INSERT_ID()和mysql_insert_id()
如果你需要知道的,我使用的Java/com.mysql.jdbc.Driver
insertNewMessage = connection
.prepareStatement(new StringBuilder(128)
.append("INSERT INTO messages (Message,SHA256) VALUES (?,?);")
.append("INSERT INTO messagelog (MESSAGE_ID,SERVER_ID,CLIENT_ID) VALUES ((SELECT LAST_INSERT_ID()),?,?)")
.toString());
所以,可以很清楚的,我的SQL语句是:
INSERT INTO messages (Message,SHA256) VALUES (?,?);
INSERT INTO messagelog (MESSAGE_ID,SERVER_ID,CLIENT_ID) VALUES ((SELECT LAST_INSERT_ID()),?,?)
我想在邮件中创建新的ROWID值表并将其插入到消息日志表中。
我在找LAST_INSERT_ID(), mysql_insert_id()这两个都不起作用。我得到以下异常抛出:
Exception in thread "main" 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 messagelog (MESSAGE_ID,SERVER_ID,CLIENT_ID) VALUES ((SELECT LAST_INS' at line 1
在MySQL的文档,这听起来像LAST_INSERT_ID应该工作,但我猜有警告。我不知道这些警告是什么。 (是A.I设置在ROWID上)
您正在尝试两个SQL查询塞进一个。除非你为连接指定了'allowMultiQuery = true',否则你不能这么做。请参阅:http://stackoverflow.com/questions/10797794/multiple-queries-executed-in-java-in-single-statement –
添加,没有奏效,但似乎要走的路是创建一个存储过程。 –