【发布时间】:2011-10-10 01:05:12
【问题描述】:
如何执行以下查询并通过准备好的语句检索结果:
INSERT INTO vcVisitors (sid) VALUES (?); SELECT LAST_INSERT_ID();
有没有办法同时执行两条语句?
我已尝试执行以下操作:
Connection con = DbManager.getConnection();
PreparedStatement ps = con.PrepareStatement(
"INSERT INTO vcVisitors (sid) VALUES (?); SELECT LAST_INSERT_ID();");
ps.setInt(1, 10);
ResultSet rs = ps.exequteQuery();
rs.next();
return rs.getInt("LAST_INSERT_ID()");
但它给了我一个错误,executeQuery 无法执行这样的查询, 我还尝试将 executeQuery 替换为以下内容:
ps.execute();
rs = ps.getResultSet();
但它给了我 SQL 语法错误:
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 'SELECT LAST_INSERT_ID()' at line 1
但是执行查询没有问题 "INSERT INTO vcVisitors (sid) VALUES ('10'); SELECT LAST_INSERT_ID();" 直接从 mysql 控制台。
【问题讨论】:
-
我认为这不可能。尤其是
INSERT和SELECT。