创建具有自动增量列的表:“”不是有效名称

Posted

技术标签:

【中文标题】创建具有自动增量列的表:“”不是有效名称【英文标题】:Creating a table with autoincrement column: '' is not a valid name 【发布时间】:2017-09-25 12:57:19 【问题描述】:

我使用 UCanAccess (4.0.2) 创建一个带有单个表的新文件,如下所示:

// 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);

代码有效,但生成的表格似乎不完整/有缺陷。尝试在 Access 中复制它会导致错误:

'' 不是有效名称...

似乎不是一个大问题,因为从设计视图中保存表格可以解决它。

知道为什么会发生这种情况以及如何避免这种情况吗?

【问题讨论】:

我已经能够使用最新的 UCanAccess 开发代码重现您的问题。团队将进行调查,我将发布任何新闻的答案。 【参考方案1】:

这与 Jackcess 2.1.8 及更早版本的已确认问题有关。 fix 已应用于 Jackcess,它将包含在下一个版本(暂定为 2.1.9)中。一旦发布了包含 Jackcess 修复程序的 UCanAccess 更新,问题就会消失。

【讨论】:

以上是关于创建具有自动增量列的表:“”不是有效名称的主要内容,如果未能解决你的问题,请参考以下文章

MySQL:创建具有自动增量的表并将生成的值与同一表的不同列的值连接起来

sql 如何创建一个具有自动增量的列id的表?

Oracle - 如何使用 varchar 类型创建自动增量列?

如何在 TypeORM 中使用具有自动递增 id 列的表进行级联插入

ORA-00907 在尝试创建具有自动列的表时

如何在选择查询中生成自动增量字段