代码之家  ›  专栏  ›  技术社区  ›  Tim Frey

JavaDB:是否可以更改现有表上的自动增量偏移量?

  •  1
  • Tim Frey  · 技术社区  · 16 年前

    是否可以使用JavaDB更改预先存在的表上的自动增量偏移量?

    我遇到了一个问题,即插入新记录通常(但不总是)失败,并出现错误,抱怨使用现有的键(我的自动递增列)。为了填充这个数据库,我从另一个数据库(MySQL)中获取了一个转储文件,并使用JavaDB存储过程将它们全部插入到相应的JavaDB表中。我的理论是,插入这些记录复制了MySQL表中现有的ID。现在,自动增量功能正在释放现有的ID。我认为将偏移量显式设置为某个高值将允许自动增量再次工作。

    2 回复  |  直到 14 年前
        1
  •  1
  •   cweiske agentofuser    14 年前

    即使这不是问题的直接答案: 使用MySQL,您可以

    ALTER TABLE my_little_table AUTO_INCREMENT =2000
    

    设置自动增量值。

        2
  •  0
  •   Tim Frey    16 年前

    我不知道如何直接更改偏移量,但我设法通过以下方法解决了这个问题:

    1. 将增量更改为x(在我的例子中是100万)。
    2. 插入虚拟记录。
    3. 将增量减少到1。
    4. 删除虚拟记录。

    我使用此SQL语句更改增量:

    ALTER TABLE tbl ALTER COLUMN col SET INCREMENT BY x