Problème avec une fonction
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:
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(); |