Bonjour
Je débute et mes connaissances sont limitées, et je bloque... seul, je ne trouve pas de solution.
J'ai un problème avec une fonction , j'ai 2 tables table1(champ1,champ2) et table2(champA , champB)
La table 1 et vide
Dans la table2 champA 4 colonnes 1.2.3.4 dans le champB A,B,C,D
Il n'y a que le champ1 de la table 1 qui doit être saisie.
Ce que j'essaie de faire c'est : quand je saisis une valeur dans champ1, la valeur de champB s'enregistre automatiquement de champ2 uniquement si la valeur saisie correspond à une valeur champA
Exemple - si je saisis dans le champ1 la valeur 3 alors le champ2 prendra la valeur C ;
- si je saisis dans le champ1 la valeur 1 alors le champ2 prendra la valeur A ;
- si je saisis dans le champ1 la valeur 230 alors dans le champ2 rien ne se passe.
Voilà ce que j’ai fait, mais je bloque ..... et vu que je débute je ne sais plus quoi faire HELP !!! ^^....
Je me suis dit fait une fonction et ensuite un trigger
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
23
24
25
26
27
28
29 CREATE OR REPLACE FUNCTION table12() RETURNS trigger AS $BODY$ begin NEW.champ1 = &champ1; NEW.champ2 = 'select table2.champ2 FROM public.table1, public.table2 WHERE table2.champ1 = table1.champ1 AND table1.champ1 = NEW.champ1 ' ; IF NEW.champ1 = table2.champ1 FROM table1 , table2 THEN execute 'insert into table1.champ2 = NEW.champ2'; end if; RETURN NEW; END $BODY$ LANGUAGE plpgsql VOLATILE CREATE TRIGGER after_insert_ch12 AFTER INSERT ON table1 FOR EACH ROW EXECUTE PROCEDURE table12();
Partager