5

我有一个带有生成 ID 的 HSQLDB 数据库,我希望自动递增值始终高于 100,000。这对 HSQLDB 可行吗?任何数据库都可以做到这一点吗?

4

6 回答 6

8

根据HSQL 文档

从 1.7.2 开始,默认使用 SQL 标准语法,允许指定初始值。支持的形式是( INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH n, [INCREMENT BY m])PRIMARY KEY, ...)。还添加了对 BIGINT 标识列的支持。因此,IDENTITY 列只是一个 INTEGER 或 BIGINT 列,其默认值由序列生成器生成。

...

下一个要使用的 IDENTITY 值可以用

ALTER TABLE <table name> ALTER COLUMN <column name> RESTART WITH <new value>;
于 2009-01-29T14:28:49.173 回答
4

以下是如何在 HSQLDB 中执行此操作

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

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

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

更新:这是主要 SQL 数据库中的身份/自动增量实现列表。

于 2009-01-29T14:27:37.460 回答
2

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

IDENTITY(100000, 1)
于 2009-01-29T14:27:18.867 回答
0

我知道 SQL Server 可以做到这一点,我想其他人也可以做到。

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

于 2009-01-29T14:27:42.857 回答
0

您可以使用使用序列的数据库来做到这一点,例如 Oracle 和 PostgreSQL。创建序列时指定起始值。

表明您也可以使用 HSQL 来完成。

于 2009-01-29T14:28:08.257 回答
0

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

于 2009-01-29T14:28:25.493 回答