Bonjour,
Dans un script, je crée une table avec un trigger pour lauto-incrémentation d'un générateur :
Le script est exécuté sans erreur mais le trigger n'est pas référencé dans la liste des triggers et lorsque je consulte la metadata, voici ce que je lis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 CREATE TABLE "COMPOSANT" ( "ID_COMPOSANT" INTEGER NOT NULL, "F_COMPOSANT" VARCHAR(60) NOT NULL, "N_COMPOSANT" VARCHAR(60) NOT NULL, "LNK_ELEMENT" INTEGER NOT NULL, PRIMARY KEY ("ID_COMPOSANT") ); CREATE TRIGGER "ID_COMPOSANT" FOR "COMPOSANT" ACTIVE BEFORE INSERT POSITION 0 as begin if (new.id_composant is null) then new.id_composant = gen_id(gen_composant,1); end;
Dans le même script, je crée d'autres tables, de même structure, et je ne rencontre pas le problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 CREATE TABLE "COMPOSANT" ( "ID_COMPOSANT" INTEGER NOT NULL, "F_COMPOSANT" VARCHAR(60) NOT NULL, "N_COMPOSANT" VARCHAR(60) NOT NULL, "LNK_ELEMENT" INTEGER NOT NULL, PRIMARY KEY ("ID_COMPOSANT") ); ALTER TABLE "COMPOSANT" ADD <<====== as begin if (new.id_composant is null) then new.id_composant = gen_id(gen_composant,1); end;
Par contre le problème se répète pour des tables de structures différentes, bref je ne trouve pas une relation de cause à effet entre la structure de la table et la mauvaise création du trigger
Que se passe t'il ?
J'utilise IB 7.5
Merci de votre aide
Vincent
_______________________________
Balises [Code] rajoutées par yobenzen
Partager