自动递增ID值

时间:2009-01-29 14:24:44

标签: sql primary-key identity hsqldb

我有一个带有生成ID的HSQLDB数据库,我希望自动递增值始终高于100,000。 HSQLDB可以实现吗?这可以用于任何数据库吗?

6 个答案:

答案 0 :(得分:9)

根据HSQL Documentation

  

自1.7.2以来,SQL标准语法   默认使用,允许   要指定的初始值。该   支持的形式是(INTEGER   以默认为身份生成(开始   与n,[由m增加])主键,   ...)。还增加了支持   BIGINT标识列。结果是,   IDENTITY列只是一个   INTEGER或BIGINT列   序列生成的默认值   发生器。

...

  

要使用的下一个IDENTITY值   用

设置
ALTER TABLE <table name> ALTER COLUMN <column name> RESTART WITH <new value>;

答案 1 :(得分:4)

Here's how to do it in HSQLDB

  

可以使用以下语句更改要使用的下一个IDENTITY值。请注意,此语句不用于正常操作,仅用于特殊目的,例如重置标识生成器:

ALTER TABLE ALTER COLUMN <column name> RESTART WITH <new value>;

据我所知,所有SQL数据库都允许您为自动增量字段设置种子值。

更新:以下是identity/auto-increment implementations in the major SQL databases的列表。

答案 2 :(得分:2)

可以使用SQL Server。定义自动编号列时,您可以定义起始编号和增量:

IDENTITY(100000, 1)

答案 3 :(得分:0)

我知道SQL Server可以实现,我想其他人也可以。

使用SQL Server,您可以设置ID列种子(起始编号)和增量值。

答案 4 :(得分:0)

您可以使用使用序列的数据库,例如Oracle和PostgreSQL。您可以在创建序列时指定起始值。

This建议您也可以使用HSQL。

答案 5 :(得分:0)

不确定HSQL,但在MS SQL中是的,这是可能的。将ID设置为自动增量,并将种子值设置为100,000。