Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/11/2011, 10h32   #1
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2011
Messages : 15
Points : 3
Points : 3
Par défaut Probleme de fonction trigger

Bonjour,
j'ai créé une fonction à l'aide de l'interface graphique de pgadmin 3.
Ensuite j'ai ajouté mon trigger à la table correspondante, qui s'executera lors d'une modification de la table

Mais quand je fais une opération sur la table il me dit
Code :
"Erreur : le controle a atteint la fin de la procédure trigger sans RETURN"
je ne comprends pas pouruqoi il me sort ca puisque j'ai utilisé l'interface graphique pour créer ma fonction que voici :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
CREATE OR REPLACE FUNCTION trig_updt()
  RETURNS TRIGGER AS
$BODY$BEGIN
	UPDATE update_table SET table_update = now()
	WHERE id_update = 1;
END;$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION trig_updt()
  OWNER TO postgres;
et le code du trigger
Code :
1
2
3
4
5
6
 
CREATE TRIGGER modif_table
  AFTER INSERT OR UPDATE OR DELETE
  ON tableamodif
  FOR EACH ROW
  EXECUTE PROCEDURE trig_updt();
Merci de votre aide.
geof51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 10h38   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 643
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 643
Points : 2 639
Points : 2 639
Bonjour,

il faut rajouter "return null;" avant le "end".


Citation:
Envoyé par geof51 Voir le message
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
CREATE OR REPLACE FUNCTION trig_updt()
  RETURNS TRIGGER AS
$BODY$BEGIN
	UPDATE update_table SET table_update = now()
	WHERE id_update = 1;
             RETURN NULL;
END;$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION trig_updt()
  OWNER TO postgres;
punkoff est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 10h50   #3
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2011
Messages : 15
Points : 3
Points : 3
ah oui effectivement, j'aurai du mieux relire l'exemple :/

Merci beaucoup de cette réponse rapide
geof51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h46.


 
 
 
 
Partenaires

Hébergement Web