创建一个 table with autoincrement column: '' is not a valid name
Creating a table with autoincrement column: '' is not a valid name
我使用 UCanAccess (4.0.2) 创建一个包含单个 table 的新文件,如下所示:
// Create a database + connect
DatabaseBuilder.create(FileFormat.V2010, new File(path));
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
conn = DriverManager.getConnection("jdbc:ucanaccess://" + path + ";singleconnection=true" ,"", "");
// Create table
String sql = "CREATE TABLE Test (id AUTOINCREMENT PRIMARY KEY, value CHAR(1) NOT NULL)";
conn.createStatement().executeUpdate(sql);
代码有效,但生成的 table 似乎是 incomplete/flawed。尝试在 Access 中复制它会导致错误:
'' is not a valid name...
似乎不是什么大问题,因为从设计视图中保存 table 即可解决问题。
知道为什么会发生这种情况以及如何避免这种情况吗?
这与 Jackcess 2.1.8 及更早版本的已确认问题有关。 fix 已应用于将包含在下一个版本(暂定为 2.1.9)中的 Jackcess。一旦发布了包含 Jackcess 修复程序的 UCanAccess 更新,问题就会消失。
我使用 UCanAccess (4.0.2) 创建一个包含单个 table 的新文件,如下所示:
// Create a database + connect
DatabaseBuilder.create(FileFormat.V2010, new File(path));
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
conn = DriverManager.getConnection("jdbc:ucanaccess://" + path + ";singleconnection=true" ,"", "");
// Create table
String sql = "CREATE TABLE Test (id AUTOINCREMENT PRIMARY KEY, value CHAR(1) NOT NULL)";
conn.createStatement().executeUpdate(sql);
代码有效,但生成的 table 似乎是 incomplete/flawed。尝试在 Access 中复制它会导致错误:
'' is not a valid name...
似乎不是什么大问题,因为从设计视图中保存 table 即可解决问题。
知道为什么会发生这种情况以及如何避免这种情况吗?
这与 Jackcess 2.1.8 及更早版本的已确认问题有关。 fix 已应用于将包含在下一个版本(暂定为 2.1.9)中的 Jackcess。一旦发布了包含 Jackcess 修复程序的 UCanAccess 更新,问题就会消失。