有没有办法使用ORDER BY并仍然使用deleterow()?

时间:2015-04-30 20:34:41

标签: sql sql-order-by derby

我使用的代码删除了数据库中的最后一行。根据我的阅读,一旦我使用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();

    }

1 个答案:

答案 0 :(得分:0)

这对我来说不是一个好习惯。

而不是将SELECT数据导入Java并从那里删除它,只需在数据库级别执行即可。执行delete-select并跳过大部分Java工作。

类似的东西:

DELETE FROM root.hiscores
WHERE Score = (SELECT MIN(hs.Score) FROM root.hiscores hs)