Автоматическое увеличение значения идентификатора - PullRequest
5 голосов
/ 29 января 2009

У меня есть база данных HSQLDB с сгенерированным идентификатором, и я хочу, чтобы значения автоинкремента всегда были выше 100 000. Возможно ли это с HSQLDB? Это возможно с любой базой данных?

Ответы [ 6 ]

9 голосов
/ 29 января 2009

Согласно документации HSQL :

Начиная с 1.7.2, стандартный синтаксис SQL используется по умолчанию, что позволяет начальное значение уточняется. поддерживается форма (INTEGER СОЗДАНО ПО УМОЛЧАНИЮ КАК ИДЕНТИЧНОСТЬ (НАЧАТЬ С П, [УВЕЛИЧЕНИЕ ПО М]] ПЕРВИЧНЫЙ КЛЮЧ, ...). Поддержка также была добавлена ​​для BIGINT идентификационные столбцы. В следствии, столбец IDENTITY просто INTEGER или BIGINT столбец с его значение по умолчанию, сгенерированное последовательностью генератор.

...

Может использоваться следующее значение IDENTITY быть установлен с

ALTER TABLE <table name> ALTER COLUMN <column name> RESTART WITH <new value>;
4 голосов
/ 29 января 2009

Вот как это сделать в HSQLDB :

Следующее используемое значение IDENTITY можно изменить с помощью следующего оператора. Обратите внимание, что этот оператор не используется в обычном режиме и предназначен только для специальных целей, например, для сброса генератора идентификаторов:

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

Насколько я знаю, все базы данных SQL позволяют вам установить начальное значение для полей автоинкремента.

Обновление: Вот список реализаций идентичности / автоинкремента в основных базах данных SQL .

2 голосов
/ 29 января 2009

Это возможно с SQL Server. При определении столбца автоматического номера вы можете определить начальный номер и приращение:

IDENTITY(100000, 1)
0 голосов
/ 29 января 2009

Не уверен насчет HSQL, но в MS SQL да, это возможно. Установите идентификатор на автоинкремент и установите начальное значение на 100 000.

0 голосов
/ 29 января 2009

Вы можете сделать это с базами данных, которые используют последовательности, такие как Oracle и PostgreSQL. Вы задаете начальное значение при создании последовательности.

Это предполагает, что вы можете сделать это и с HSQL.

0 голосов
/ 29 января 2009

Я знаю, что это возможно с SQL Server, и я предполагаю, что это возможно с другими.

В SQL Server вы можете установить начальный столбец идентификатора (начальный номер) и значение приращения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...