MySQL中如何同时执行多条语句?
JSP、Servlet中用JDBC连接MySQL 4.1.7,想执行下列语句:
SELECT @max_id := MAX(id) FROM tab1;
INSERT INTO tab1(id,name) VALUES(@max_id,'');
在一些MySQL的工具的查询窗口里可以顺利执行,但是如果使用JDBC执行就不行了:
String sql = "SELECT @max_id := MAX(id) FROM tab1;INSERT INTO tab1(id,name) VALUES(@max_id,'');";
sta.executeQuery(sql);和sta.executeUpdate(sql);均失败,请问我该如何同时执行这两条语句,它们可以封装在事务中吗?请指导一下,谢谢!!
问题点数:100、回复次数:4Top
1 楼smice(Smice)回复于 2004-12-04 21:41:04 得分 20
SELECT @max_id := MAX(id) FROM tab1;
INSERT INTO tab1(id,name) VALUES(@max_id,'');
我可以告诉你, 封装在事务中运行一定没有问题.Top
2 楼oyzjin(oyzjin)回复于 2004-12-04 22:08:26 得分 20
START TRANSACTION;
SELECT @max_id := MAX(id) FROM tab1;
INSERT INTO tab1(id,name) VALUES(@max_id,'');
COMMIT;Top
3 楼classjava(原始野人)回复于 2004-12-05 00:41:25 得分 0
用文件导入^_^Top
4 楼loveflea(coolwind)回复于 2004-12-10 12:20:46 得分 60
try {
connRemoteMysql.setAutoCommit(false);
stmt = connRemoteMysql.createStatement();
stmt.executeUpdate("SELECT @max_id := MAX(id) FROM tab1");
stmt.executeUpdate("INSERT INTO tab1(id,name) VALUES(@max_id,'')");
connRemoteMysql.commit();
}
catch (SQLException ex) {
prt("SQLException: " + ex.getMessage());
try {
if (connRemoteMysql != null){
prt("Rolling back transaction");
connRemoteMysql.rollback();
}
}
catch(SQLException rx) {
prt("SQLException - rollback() failed: " + rx.getMessage());
}
}
finally {
if (connRemoteMysql != null && !(connRemoteMysql.isClosed())) { connRemoteMysql.setAutoCommit(true);
}
}Top




