Access DB 自动增量不允许我打开 table

Access DB autoincrement doesn't let me open the table

我刚刚设法连接到本地 .accdb Access 数据库,现在正在尝试创建我的 table。我 运行 这两行 Java 并且在 运行 期间没有错误 SQL-Commands:

Statement st = d.createStatement();
st.executeUpdate("CREATE TABLE suppliers ( [name] TEXT(255), [adress] TEXT(255), [ID] AUTOINCREMENT PRIMARY KEY);");
st.executeUpdate("CREATE TABLE quality ( [name] TEXT(255) );");
st.close();

但是现在我想用 Microsoft Access 打开刚刚创建的 tables,所以生成的两个 tables 之间存在差异。

我可以正常打开 table "quality" 并插入一些值。

现在,如果我尝试打开 "suppliers",我会收到此错误消息:

这是德语,意思是"The database '' could not been opened. Either the database doesn't get recognized by your application or the file is damaged."

所以我尝试删除“[ID] AUTOINCREMENT PRIMARY KEY”,没有这个它也能正常工作。所以这个错误肯定是由 "AUTOINCREMENT".

引起的

我使用 ucanacess 连接数据库:

Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
c = DriverManager.getConnection("jdbc:ucanaccess://C:/bin/Test.accdb");

我的 "AUTOINCREMENT" 是不是做错了什么?

我可以使用 UCanAccess 4.0.2 重现您的问题。它似乎与最后指定的 [ID] 列有关。也就是说,这会导致问题:

sql = "CREATE TABLE suppliers ( [name] TEXT(255), [adress] TEXT(255), [ID] AUTOINCREMENT PRIMARY KEY)";

...但按此顺序指定列没问题:

sql = "CREATE TABLE suppliers ([ID] AUTOINCREMENT PRIMARY KEY, [name] TEXT(255), [adress] TEXT(255))";

我会将此信息传递给 UCanAccess 开发团队。