java - 使用 UCanAccess 插入行时更改自动编号值

标签 java ms-access jdbc ucanaccess

当使用UCanAccess的executeUpdate方法时,系统总是为我选择行号。但是,在我删除行并添加新行后,这些行不会从头开始(例如,我删除了 3 行,然后它将接下来的 3 行标记为 456)。有没有办法解决这个问题或自己命名行?这是我的代码:

statement.executeUpdate("INSERT INTO myDB2"+ " ( columnRows,  columnA, columnB)"
    + " VALUES ( "+rows+", "+a+", "+b+")");`

最佳答案

重置下一个自动编号值

删除行后,您可以通过在 Access 中打开数据库并执行“压缩并修复数据库”操作来重置自动编号种子值。 UCanAccess 目前无法重置种子值本身。

将任意值插入自动编号列

从版本 4.0.2 开始,UCanAccess 能够将任意正值插入到自动编号(长整数、增量)列中。例如,对于名为 [Client] 的表:

ClientID - 自动编号
名字 - 文本(50)

我们能做到

Statement st = conn.createStatement();
st.execute("DISABLE AUTOINCREMENT ON Client");
st.execute("INSERT INTO Client (ClientID, FirstName) VALUES (123, 'Gord')");

有关更多详细信息,请参阅博客文章 here .

版本 4.0.3(尚未发布)扩展了该功能,允许插入小于或等于零的任意值。

关于java - 使用 UCanAccess 插入行时更改自动编号值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44420840/

相关文章:

ms-access - “Id”不是此表中的索引 - MS ACCESS

java - 在java程序中,如何知道存储过程运行正确或引发一些错误?

mysql - 无法建立 JDBC 连接 - 没有有效的解决方案 :/

java - 在 Android 应用程序中添加许多已保存的图像

Java Swing 编程面板标题

SQL选择问题

插入时发生 Java 一般错误...???

java - servlet 到 mysql jdbc 连接类未找到异常

java - mapstruct 中的映射循环问题

java - Oracle ADF : How to populate DepartmentId value from managed backing or managed beans