Bonjour à tous j'ai trois tables
table customer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CREATE TABLE t_list ( list_id serial NOT NULL, list_type_id integer NOT NULL, -- ... )
table de jointure
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CREATE TABLE t_customer ( cust_id serial NOT NULL, cust_first_name character varying(50) NOT NULL, cust_last_name character varying(50) NOT NULL, cust_email character varying(50), --... )
j'aimerai créer un trigger qui permet après création ou suppression d'une nouvelle list d'inserer une ligne list_id et cust_id dans la table t-cust_list
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CREATE TABLE t_cust_list ( cust_list_id serial NOT NULL, list_id serial NOT NULL, cust_id integer NOT NULL, --... )
voila ce que je fais
et voici l'erreur que j'ai
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
16
17
18
19
20
21
22 CREATE FUNCTION CustList_Trigger() RETURNS trigger AS $t_cust_list$ -- -- Ajoute une ligne dans t-cust_list pour refléter l'opération réalisée -- sur t_list, -- utilise la variable spéciale TG_OP pour cette opération. -- BEGIN IF (TG_OP = 'INSERT') THEN INSERT INTO t_cust_list SELECT list_id, cust_id, NEW.*; RETURN NEW; ELSIF (TG_OP = 'DELETE') THEN INSERT INTO t_cust_list SELECT list_id, cust_id, NEW.*; RETURN NEW; END IF; END; $t_cust_list$ language plpgsql; CREATE TRIGGER CustList_Trigger BEFORE INSERT OR UPDATE ON t_list FOR EACH ROW EXECUTE PROCEDURE CustList_Trigger();
Quelqu'un a-til une idée de comment creer de nouveau lagange
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 ERREUR: le langage « plpgsql » n'existe pas HINT: Utiliser CREATE LANGUAGE pour charger le langage dans la base de données. ********** Error ********** ERREUR: le langage « plpgsql » n'existe pas SQL state: 42704 Hint: Utiliser CREATE LANGUAGE pour charger le langage dans la base de données.
Partager