我有一个带有生成ID的HSQLDB数据库,我希望自动递增值始终高于100,000。 HSQLDB可以实现吗?这可以用于任何数据库吗?
答案 0 :(得分:9)
自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。