2017-02-23 2 views

Répondre

4

Lorsque vous utilisez next value for <sequence name> avec un sequence (generator), il ne peut augmenter d'un (séquences Firebird n'ont pas de configuration pour spécifier un incrément par défaut d'une plus grande valeur):

Chaque fois que l'opérateur NEXT VALUE FOR seq_name est utilisé avec cette séquence, sa valeur augmente de 1. La fonction GEN_ID(seq_name, <step>) peut être appelée à la place, pour "faire un pas" dans la série par un nombre entier différent.

Cela montre également une solution de contournement: utiliser l'héritage gen_id fonction avec un incrément plus grand que 1:

incrémente un générateur ou d'une séquence et retourne sa nouvelle valeur. À partir de Firebird 2.0, la syntaxe NEXT VALUE FOR conforme à SQL est préférée, sauf lorsqu'un incrément autre que 1 est nécessaire.
[..]
Syntaxe:

GEN_ID (generator-name, <step>) 

En d'autres termes: utiliser GEN_ID(<sequence name>, 10) pour incrémenter une séquence de 10 au lieu de 1.

+0

Merci. Je vais essayer. – ppro