Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/05/2005, 11h01   #1
Invité de passage
 
Inscription : octobre 2004
Messages : 24
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 24
Points : 1
Points : 1
Par défaut 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
2icd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2005, 10h00   #2
Membre confirmé
 
Avatar de TMuet
 
Homme Olivier Muet
Responsable de service informatique
Inscription : septembre 2003
Messages : 222
Détails du profil
Informations personnelles :
Nom : Homme Olivier Muet
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2003
Messages : 222
Points : 254
Points : 254
Une solution à quoi :

Celle que tu proposes va très bien
TMuet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2005, 07h07   #3
Invité de passage
 
Inscription : octobre 2004
Messages : 24
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 24
Points : 1
Points : 1
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
2icd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2005, 09h56   #4
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
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
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h52.


 
 
 
 
Partenaires

Hébergement Web