這裏是我的Java代碼:如何使用while循環從結果集中獲取的值更新另一個操作?
public int function(String name)
{
int i=0;
int id=0;
try
{
String get_id="SELECT id FROM table_name JOIN tbl_2 ON tbl_name.pk_id = tbl_2.fk_name_id where active_flag=1 and updated_at <= NOW() - INTERVAL 3 MINUTE";
Statement stmt=(Statement) conn.createStatement();
ResultSet rs = stmt.executeQuery(get_id);
while (rs.next())
{
id= rs.getInt("id");
String update="UPDATE table_name SET active_flag=NULL WHERE id="+id+"";
stmt.executeUpdate(update);
}
i=1;
}
catch(Exception e)
{
System.out.println(e);
}
return i;
}
在運行此,我得到的SQL異常:
值java.sql.SQLException:不允許操作的ResultSet關閉
後
請幫助我以另一種簡單的方式執行此操作。我只是想用從第一個SQL查詢獲得的值更新同一個表,因爲 表中有n個值,並且動態地改變了值,我使用while循環。請幫我解決這個問題。提前致謝。
爲什麼你不使用單個SQL查詢'UPDATE TABLE_NAME SET active_flag = NULL WHERE ID IN(SELECT ID FROM table_name的JOIN tbl_2 ON tbl_name.pk_id = tbl_2.fk_name_id其中active_flag = 1和updated_at <= NOW() - INTERVAL 3 MINUTE)'? –
錯誤1093(HY000):您無法在FROM子句中指定目標表'tbl_driver'進行更新 – jasim
我無法在您的查詢或我的示例查詢中看到'tbl_driver'別名。您可能需要查看[this](http://stackoverflow.com/questions/13188002/error-1093-hy000-you-cant-specify-target-table-a-for-update-in-from-clause) –