Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
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 12/07/2007, 10h47   #1
Invité de passage
 
Inscription : juillet 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 1
Points : 0
Points : 0
Par défaut Problème trigger sur ajout

Bonjour à tous !

J'utilise MYSQL 5.0.37 et phpmyadmin 2.10.1.

Voila mon problème, je souhaite créer un TRIGGER, qui quand je rajouterais un nouveau patient, me signale par un message ou une erreur que ce patient est déjà présent dans ma base.
Pour se faire, j'ai une table PATIENT avec code_patient et nom.

Mon trigger :

DELIMITER $$
CREATE TRIGGER T_B_I_PATIENT BEFORE INSERT ON PATIENT
FOR EACH ROW
DECLARE v_nbpatient number;
BEGIN
SELECT COUNT(code_p) into v_nbpatient from PATIENT WHERE PATIENT.nom=:NEW.nom;
if (v_nbpatient>1) THEN
RAISE_APPLICATION_ERROR(-20002,'Patient déjà présent dans la base');
end if;
end$$

L'erreur qui m'est affiché :
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER $$
CREATE TRIGGER T_B_I_PATIENT BEFORE INSERT ON PATIENT
FOR EACH ' at line 1


Merci de votre aide.
envie2noichi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2007, 13h35   #2
Membre expérimenté
 
Inscription : septembre 2006
Messages : 685
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 685
Points : 564
Points : 564
Pourquoi ne pas plutôt utiliser une colonne définie en UNIQUE et te servir du INGORE ou ON DUPLICATE KEY de l'INSERT ?
Xunil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h53.


 
 
 
 
Partenaires

Hébergement Web