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

Mik*_*ike 1 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();
}
Run Code Online (Sandbox Code Playgroud)

SHi*_*KiT 5

你这样连接:

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

您将属性READONLY设置为true,因此无法对数据库进行修改.