删除重复方法不会删除重复项
问题描述:
我已经编写了一个方法来执行删除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();
}
答
您正在连接这样的:
String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + sDBQ + ";DriverID=22;READONLY=true";
你有一个属性READONLY
设置为true
,所以你不能修改您的数据库。
为什么在数据库字符串中这个READONLY = true?我会试着去除这个。 – kosa 2012-01-11 02:23:59