[Trigger] problème insert
Bonjour,
Je suis entrain de faire un trigger et j'ai un petit problème.
En php je fais un insert dans une table et mon trigger consiste à vérifier, si dans cette table, il y a déjà une ligne qui existe (en fonction des id) on fait un update, sinon on fait l'insert comme prévu :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| CREATE FUNCTION f_consultation() RETURNS trigger AS
$body$
DECLARE
unId INTEGER;
BEGIN
SELECT *
FROM CONSULTATION
WHERE idpersonne = NEW.idpersonne
AND idtablature = NEW.idtablature
INTO unId;
IF unId=NULL THEN
RETURN NULL;
ELSE
UPDATE consultation SET quantite = quantite+1 WHERE idpersonne = NEW.idpersonne AND idtablature = NEW.idtablature;
RETURN NULL;
END IF;
END;
$body$ language plpgsql;
CREATE TRIGGER t_consultation BEFORE INSERT ON consultation
FOR EACH ROW EXECUTE PROCEDURE f_consultation(); |
Cela marche très bien pour l'update, mais le problème c'est que l'insert ne se fait jamais. Comment faire pour que l'insert se produise dans le cas ou je n'ai pas de lignes qui correspond a mon select ?
En gros dans le if=NULL il faudrait rien faire et juste exécuter la requête d'insert comme prévu.
Merci d'avance.
John.