-
SET GENERATOR
Bonjour a tous,
J'utilise depuis peu les TRIGGER dans interbase et j'aimerai bénéficier des compteurs auto increment.
Les tables existent déjà et ne sont pas vides. Il faut donc que l'initialise les compteurs à la valeur MAX de l'ID de chaqu'une des tables. En d'autres termes je veux faire un truc du style :
SET GENERATOR cpt TO (SELECT MAX(ID) FROM TABLE)
Avez-vous une solution ?
Merci d'avance
Alain
-
Une solution à quoi :?:
Celle que tu proposes va très bien :wink:
-
Bonjour,
J'ai oublié de préciser que je travaille avec IB 6.01. Et avec cette version, ça ne marche pas, Le SELECT n'est pas accepté dans un SET GENERATOR
Je n'ai pas essayé en version 7, mais pas question de passer en version 7, il faudrait migrer tous mes clients.
Personne n'a rencontré ce problème ?
Alain
-
Non on ne peut pas faire se select dans un set generator.
Vous pouvez soit le faire en plusieures étapes (dans un programme ou une PS) :
Réccupération du max de la table puis affectation du générateur.
Soit par la commande suivante :
Code:
SELECT gen_id(GEN_MON_GENERATOR, ((select max(ID) FROM MA_TABLE)-gen_id(GEN_MON_GENERATOR,0))) from rdb$database
Si votre générateur est à zero celà peux s'écrire plus simplement :
Code:
SELECT gen_id(GEN_MON_GENERATOR, (select max(ID) FROM MA_TABLE)) from rdb$database