Trigger et count()

Résolu
cs_sim51 Messages postés 240 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 31 décembre 2006 - 15 août 2005 à 20:17
cs_sim51 Messages postés 240 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 31 décembre 2006 - 16 août 2005 à 00:22
Bonjour ,

J' ai un petit problème avec une fonction pour un trigger et la
fonction count. En effet lorsque le trigger se déclanche, j'ai une
erreur qui survient près de mon premier argument ( qui est noposte )
dans mon select, et je ne comprend pas pourquoi.

Voici mon code :



REATE OR REPLACE FUNCTION gen_clef_posteoqp()

RETURNS "trigger" AS

$BODY$

DECLARE

identifiant varchar(20);

noposte integer;

BEGIN

identifiant:=NEW.login;

SELECT COUNT(id_poste_occupe) AS noposte FROM poste_occupe WHERE login=identifiant;

IF noposte ISNULL THEN

noposte:=0;

END IF;

NEW.id_poste_occupe:=identifiant||noposte;

RETURN NEW;

END;

$BODY$

LANGUAGE 'plpgsql' VOLATILE;



Merci pour votre aide.



PS: j'utilise postgresql


N'oubliez pas de cliquer sur réponse acceptée si la réponse vous convient !!!

1 réponse

cs_sim51 Messages postés 240 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 31 décembre 2006 2
16 août 2005 à 00:22
Re,

Avec un peu plus de percévérence j'ai fini par trouvé, postgresql
n'aime pas trop les AS mais préfère les into, et oui faut le savoir,
donc voici le code :



CREATE OR REPLACE FUNCTION gen_clef_posteOQP() RETURNS "trigger" AS

$BODY$

DECLARE

identifiant varchar(20);

noposte integer;

BEGIN

identifiant:=NEW.login;

SELECT INTO noposte COUNT(*) FROM poste_occupe WHERE login=identifiant;

IF noposte ISNULL THEN

noposte:=0;

END IF;

NEW.id_poste_occupe:=identifiant||noposte;

RETURN NEW;

END;

$BODY$

LANGUAGE 'plpgsql' VOLATILE;

N'oubliez pas de cliquer sur réponse acceptée si la réponse vous convient !!!
3
Rejoignez-nous