Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de trigger !

    15 janvier 2018 à 13:52:04

    Hello !
    Je rencontre un souci que je n'arrive pas à solver seul. J'essaie de creer un trigger sous phpmyadmin, mais l'onglet me retourne une erreur très peu précise...

    Voilà mon code :

    DELIMITER &&
    create trigger T_B_I_RDV
    BEFORE INSERT ON RDV 
    FOR EACH ROW
    Begin
    	DECLARE
    	vCount int;
    	SELECT COUNT(*) into vCount
    	FROM RDV
    	WHERE to_time(new.HEURE) BETWEEN to_time(RDV.HEURE) AND SEC_TO_TIME(TIME_TO_SEC(RDV.heure)+TIME_TO_SEC(RDV.duree))
    	OR SEC_TO_TIME(TIME_TO_SEC(new.HEURE)+TIME_TO_SEC(new.DUREE)) BETWEEN to_time(RDV.HEURE) AND SEC_TO_TIME(TIME_TO_SEC(RDV.heure)+TIME_TO_SEC(RDV.duree))
    	OR to_time(RDV.HEURE) BETWEEN to_time(new.HEURE) AND SEC_TO_TIME(TIME_TO_SEC(new.HEURE)+TIME_TO_SEC(new.DUREE)) BETWEEN to_time(RDV.HEURE);
            
    	IF vCount > 0 THEN
    		raise_application_error(-20002, ‘un créneau existe déjà sur cette période.’);
    	END IF;
    END&&

    Et comme erreur j'ai :

    1064 - Erreur de syntaxe près de ';

        IF vCount > 0 THEN
            raise_application_error(-20002, ‘un créne' à la ligne 11

    En sachant que par ligne 11, il désigne en réalité la 12... Et donc le souci serait à mon ";" mais lorsque je le retire il me met la même erreur, mais sur le IF.. Donc je sais pas trop. C'est surement un truc idiot, mais j'arrive pas à trouver

    Merci d'avance !

    -
    Edité par Firkh 15 janvier 2018 à 13:59:18

    • Partager sur Facebook
    • Partager sur Twitter
      15 janvier 2018 à 18:14:09

      Bonjour,

      Tu as deux BETWEEN dans la même ligne de condition (ligne 12) ...

      Tu écris :

      OR ... BETWEEN ... AND ... BETWEEN ... ;

      Pas glop ...

      -
      Edité par Benzouye 15 janvier 2018 à 18:14:17

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL

      Problème de trigger !

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown