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 开发团队。
我刚刚设法连接到本地 .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 开发团队。