删除重复方法不会删除重复项

时间:2012-01-11 02:08:08

标签: java sql ms-access

我编写了一个执行删除MS Access文件中重复项的查询的方法。在MS Access中运行时查询正常工作,但在通过Java运行时没有任何反应。其他查询使用相同的连接字符串。另一组眼睛可以看到导致这种情况发生的原因吗?

public static void delete_duplicates() throws Exception{

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    String sDBQ = "C:/AW.mdb";

    String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + sDBQ + ";DriverID=22;READONLY=true";
    Connection conn = DriverManager.getConnection( database ,"","");;
    Statement stmt = conn.createStatement();

    String query = "DELETE "+
                    "FROM AW " +
                    "WHERE id not in (select min(id) from AW group by Symbol, Direction, START_DT, END_DT)";

    System.out.println(query);

    stmt.executeUpdate(query);

    stmt.close();
}

1 个答案:

答案 0 :(得分:5)

你这样连接:

String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + sDBQ + ";DriverID=22;READONLY=true";

您将属性READONLY设置为true,因此您无法修改数据库。