Используя Firebird 2.5, я хочу создать генератор, который увеличивает столбец каждые 10 единиц, а не один за другим. Я не смог найти никаких ссылок на это в документации Firebird или в Интернете.
Генератор Firebird, который увеличивается в десятых долях
Ответы (1)
При использовании next value for <sequence name>
с последовательность (генератор), она может увеличиваться только на единицу (последовательности Firebird не имеют конфигурации, позволяющей указать увеличение значения по умолчанию):
Каждый раз, когда оператор
NEXT VALUE FOR seq_name
используется с этой последовательностью, его значение увеличивается на 1. Вместо этого можно вызвать функциюGEN_ID(seq_name, <step>)
, чтобы «шагнуть» серию на другое целое число.
Это также указывает на обходной путь: используйте устаревший gen_id
с шагом больше 1:
Увеличивает генератор или последовательность и возвращает новое значение. Начиная с Firebird 2.0, предпочтительным является синтаксис
NEXT VALUE FOR
, совместимый с SQL, за исключением случаев, когда требуется приращение, отличное от 1.
[..]
Синтаксис:GEN_ID (generator-name, <step>)
Другими словами: используйте GEN_ID(<sequence name>, 10)
для увеличения последовательности на 10 вместо 1.