Bonjour,

Je suis nouvelle ici, je ne sais pas si c'est le bon espace pour ce sujet désolé.

Je suis débutante avec PG admin 4 et je veux créer un trigger fonction; Jusque là tout va bien. Sauf pour le code (ci dessous, un peu long désolé) :

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
BEGIN -- commencer la fonction
 
	-- Champs de la table pour lesquels des valeurs peuvent être ajoutées
	IF (TG_OP ='INSERT')THEN -- Si on fait une insertion
	INSERT INTO site.site_cenca_test VALUES (nextval('site.site_cenca_test_site_id_seq'::regclass), -- on insère dans la table site les valeurs suivantes
	new.code_cenca,
	new.id_mnhn,
	new.idfcen,
	new.cen,
	new.codesite,
	new.nomsite,
	new.tmacqu,
	new.surfacqu,
	new.tmbail,
	new.surfbail,
	new.tmbailru,
	new.surfbailru,
	new.tmbailpr,
	new.surfbailpr,
	new.tmpret,
	new.surfpret,
	new.tmconv,
	new.surfconv,
	new.tmconvt,
	new.surfconvt,
	new.tmautre,
	new.surfautre,
	new.surftottmf,
	new.surftottmu,
	new.surftottm,
	new.surftotsig,
	new.contratagr,
	new.nbagri,
	new.surfcontra,
	new.rnn,
	new.rnr,
	new.rnc,
	new.gestrnn,
	new.gestrnr,
	new.gestrnc,
	new.convrnn,
	new.convrnr,
	new.convrnc,
	new.surfcvrnn,
	new.surfcvrnr,
	new.surfcvrnc,
	new.inclurnn,
	new.inclurnr,
	new.inclurnc,
	new.surfinrnn,
	new.surfinrnr,
	new.surfinrnc,
	new.ens,
	new.tmil,
	new.cdl,
	new.compe,
	new.surf_comp,
	new.fddot,
	new.surf_fddot,
	new.tmilieux,
	new.code_geol,
	new.refnum,
	new.echellenum
 
	RETURN NEW; --on renvoie les nouvelles valeurs
 
	-- Champs de la table site pour lesquels des valeurs peuvent être modifiées
	ELSIF(TG_OP ='UPDATE') THEN -- Si on est en mode modification
	UPDATE site.site_cenca_test SET site_id =  new.site_id, -- On met à jour les champs avec les nouvelles valeurs
	code_cenca = new.code_cenca,
	id_mnhn = new.id_mnhn,
	idfcen = new.idfcen,
	cen = new.cen,
	codesite = new.codesite,
	nomsite = new.nomsite,
	tmacqu = new.tmacqu,
	surfacqu = new.surfacqu,
	tmbail = new.tmbail,
	surfbail = new.surfbail,
	tmbailru = new.tmbailru,
	surfbailru = new.surfbailru,
	tmbailpr = new.tmbailpr,
	surfbailpr = new.surfbailpr,
	tmpret = new.tmpret,
	surfpret = new.surfpret,
	tmconv = new.tmconv,
	surfconv = new.surfconv,
	tmconvt = new.tmconvt,
	surfconvt = new.surfconvt,
	tmautre = new.tmautre,
	surfautre = new.surfautre,
	surftottmf = new.surftottmf,
	surftottmu = new.surftottmu,
	surftottm = new.surftottm,
	surftotsig = new.surftotsig,
	contratagr = new.contratagr,
	nbagri = new.nbagri,
	surfcontra = new.surfcontra,
	rnn = new.rnn,
	rnr = new.rnr,
	rnc = new.rnc,
	gestrnn = new.gestrnn,
	gestrnr = new.gestrnr,
	gestrnc = new.gestrnc,
	convrnn = new.convrnn,
	convrnr = new.convrnr,
	convrnc = new.convrnc,
	surfcvrnn = new.surfcvrnn,
	surfcvrnr = new.surfcvrnr,
	surfcvrnc = new.surfcvrnc,
	inclurnn = new.inclurnn,
	inclurnr = new.inclurnr,
	inclurnc = new.inclurnc,
	surfinrnn = new.surfinrnn,
	surfinrnr = new.surfinrnr,
	surfinrnc = new.surfinrnc,
	ens = new.ens,
	tmil = new.tmil,
	cdl = new.cdl,
	compe = new.compe,
	surf_comp = new.surf_comp,
	fddot = new.fddot,
	surf_fddot = new.surf_fddot,
	tmilieux = new.tmilieux,
	code_geol = new.code_geol,
	refnum = new.refnum,
	echellenum = new.echellenum,
 
	WHERE site_id =OLD.site_id; 
 
 
	RETURN NEW ;
 
	-- Champs de la table inventaire pour lesquels des valeurs peuvent être supprimées
	ELSIF(TG_OP ='DELETE') THEN
	DELETE FROM site.site_cenca_test WHERE id = OLD.id;
	RETURN NULL;
	END IF;
	RETURN NEW;
END;
Sauf que j'ai un message d'erreur "erreur de syntaxe près de NEW" à la ligne 72 (située à code_cenca = new.codecenca)

J'avoue ne pas trop comprendre, si quelqu'un peut m'expliquer svp ?

cordialement