stu76
Messages postés186Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention17 février 2008
-
3 nov. 2005 à 12:55
stu76
Messages postés186Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention17 février 2008
-
7 nov. 2005 à 21:53
Bonjour tout le monde,
J'aimerais savoir si il y a une fonction sql pour rendre un champ de base de données incrémentelles. Je m'explique, j'ai une table groupe qui comporte les champs suivant :
PK_NUMGR INTEGER NOT NULL,
NOM_GROUP VARCHAR
SIGLE VARCHAR
J'aimerais que le champ PK_NUMGR soit incrémentelle, donc que à chaque enregistrement d'un nouveau groupe il fasse +1,
vincentstryckmans
Messages postés228Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention25 octobre 2006 7 nov. 2005 à 12:32
Bonjour,
Avec Interbase, tu dois en effet utiliser les générateurs et les triggers.
Voici un exemple de code sql que j'extrais d'une de mes bases de données :
CREATE GENERATOR GEN_AVIS ;
SET GENERATOR GEN_AVIS TO 0;
CREATE TRIGGER TG_AVIS_INCIDENT FOR AVIS_INCIDENT ACTIVE
BEFORE INSERT POSITION 0
as
begin
if (new.id is null) then
new.id = gen_id(gen_avis,1);
end
Ce script SQL va créer un générateur nommé gen_avis et l'initialisé à 0.
Ensuite, un trigger, nommé, tg_avis_incident, sera créé pour la table avis_incident.
Il aura lieu avant chaque nouvelle insertion d'un record dans la table.
Le champ id du nouveau record se verra assigné la valeur obtenue par la fonction gen_id(gen_avis,1). Cette fonction va incrémenter le générateur gen_avis d'une unité avant l'insertion du nouveau record.
On a ainsi créer un autoincrément bine utile pour les intégrités référentielles et autres clefs primaires.
Et comme disait ma grand-mère : il y a toujours du soleil derrière les nuages.
cs_ebi
Messages postés9Date d'inscriptionsamedi 22 octobre 2005StatutMembreDernière intervention25 juillet 2006 3 nov. 2005 à 21:27
Bonsoir stu76,
je regrette, c'etait une response vide ...avant.
alors je pense, qu'on peut construire un champ d'increment avec un generateur(interbase,oracle)
et un trigger,qui lance un increment (+1) apres chaque addition d'un record.
sinon,il y a quelquefois des bases de donnees, qui ont un champ d'increment (interbase).
il me faudrait savoir avec quel base tu travailles,