Bonjour,
J'ai du mal a comprendre la syntaxe et ce que je fais le trigger .
J ai numéro ci dessous ,
1- Pourquoi creer une fonction qui fait returns un trigger?On aurait pas pu créer un trigger directement par un create trigger?
2-Le return NEW retourne quoi exactement?
3 Je présume que c'est pour dire qu on utilise pl/sql
4-Quelle difference entre ce create TRIGGER et le returns trigger?
merci
Exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CREATE TABLE emp ( nom_employe text, salaire integer, date_dermodif timestamp, utilisateur_dermodif text );
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 1 - CREATE FUNCTION emp_stamp() RETURNS trigger AS $emp_stamp$ BEGIN -- Verifie que nom_employe et salary sont donnés IF NEW.nom_employe IS NULL THEN RAISE EXCEPTION 'nom_employe ne peut pas être NULL'; END IF; IF NEW.salaire IS NULL THEN RAISE EXCEPTION '% ne peut pas avoir un salaire', NEW.nom_employe; END IF; -- Qui travaille pour nous si la personne doit payer pour cela ? IF NEW.salaire < 0 THEN RAISE EXCEPTION '% ne peut pas avoir un salaire négatif', NEW.nom_employe; END IF; -- Rappelons-nous qui a changé le salaire et quand NEW.date_dermodif := current_timestamp; NEW.utilisateur_dermodif := current_user; 2- RETURN NEW; END; 3-$emp_stamp$ LANGUAGE plpgsql; 4- CREATE TRIGGER emp_stamp BEFORE INSERT OR UPDATE ON emp FOR EACH ROW EXECUTE PROCEDURE emp_stamp();
Partager