我使用的代码删除了数据库中的最后一行。根据我的阅读,一旦我使用ORDER BY
,它会将结果设置回只读deleterow()
或其他涉及更新数据库的内容。
是否有解决办法让我可以制作表ORDER BY Score DESC
并仍然删除我需要删除的行?
String host = "jdbc:derby://localhost:1527/Scores";
String uName = "root";
String uPass= "root";
Connection con = DriverManager.getConnection( host, uName, uPass );
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String SQLd = "select * from ROOT.HISCORES ORDER BY Score DESC";
ResultSet dl = stmt.executeQuery( SQLd );
dl.last();
dl.deleteRow();
}
答案 0 :(得分:0)
这对我来说不是一个好习惯。
而不是将SELECT
数据导入Java并从那里删除它,只需在数据库级别执行即可。执行delete-select并跳过大部分Java工作。
类似的东西:
DELETE FROM root.hiscores
WHERE Score = (SELECT MIN(hs.Score) FROM root.hiscores hs)