En utilisant Firebird 2.5, je souhaite créer un générateur qui incrémente une colonne toutes les 10 unités au lieu d'une par une. Je n'ai trouvé aucune référence pour ce faire dans la documentation Firebird ni sur le Web.Générateur Firebird qui s'incrémente en dixièmes
Répondre
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 fonctionGEN_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.
Merci. Je vais essayer. – ppro