Quelqu’un me dit pou quoi les Trigger des PRIMARY KEY ne fonctionnent pas même sur IBCONSOL
Voila ma table
Voila le Trigger qui fonctionne correctement
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 CREATE DOMAIN "AUTO_INC" AS INTEGER; CREATE DOMAIN "CAR_COURT" AS VARCHAR(30); CREATE DOMAIN "HEURE" AS TIME; CREATE DOMAIN "LA_DATE" AS DATE; CREATE DOMAIN "MONNAIE" AS NUMERIC(15, 2) default 0; CREATE DOMAIN "NOTE" AS VARCHAR(300); CREATE DOMAIN "NUMERO" AS INTEGER default 0; CREATE DOMAIN "UN_CAR" AS VARCHAR(1); CREATE TABLE "PROFORMA" ( "ID_PROFORMA" "AUTO_INC" NOT NULL, "CODE_MODE_PAIEMENT" "UN_CAR", "USERNAME" "CAR_COURT", "CODE_OPERATEUR" VARCHAR(10), "NUM_PROFORMA" "NUMERO", "DATE_PROFORMA" "LA_DATE", "HEURE_PROFORMA" "HEURE", "OBS_PROFORMA" "NOTE", "CLOS_PROFORMA" "UN_CAR", "TYPE_PRIX_PROFORMA" "UN_CAR", CONSTRAINT "PK_PROFORMA" PRIMARY KEY ("ID_PROFORMA"));
enfin le trigger qui ne fonctionne pas
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 SET TERM ^ ; CREATE TRIGGER "INSERTION_PROFORMA" FOR "PROFORMA" ACTIVE BEFORE INSERT POSITION 0 as declare variable num_proforma integer; begin if (new.ID_PROFORMA is null) then new.ID_PROFORMA = GEN_ID(S_PROFORMA, 1); if (new.date_proforma is null) then new.date_proforma = 'today'; if (new.heure_proforma is null) then new.heure_proforma = 'now'; select max(num_proforma) from proforma where num_proforma between ((extract(year from new.date_proforma)) * 10000 + 1) and ((extract(year from new.date_proforma)) * 10000 + 9999) into :num_proforma; if (:num_proforma is null) then new.num_proforma = ((extract(year from new.date_proforma)) * 10000 + 1); else new.num_proforma = :num_proforma + 1; end ^
merci a tous
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CREATE TRIGGER "TI_PROFORMA" FOR "PROFORMA" ACTIVE BEFORE INSERT POSITION 0 as declare variable numrows integer; begin if (new.ID_PROFORMA is null) then new.ID_PROFORMA = GEN_ID(S_PROFORMA, 1); end ^
Partager