Problème mysql

Résolu
Bonjour,
j'ai un problème je ne comprend pas mon erreur

delimiter //
CREATE trigger pasboucle before INSERT ON modele_descendant
FOR each ROW
BEGIN
DECLARE mod,ssmod,existe INTEGER;
SET mod = new.idmodele, ssmod = new.id_sousmodele;
SELECT count(*) into existe FROM modele_descendant WHERE idmodele=ssmod and id_sousmodele=mod ;
IF(existe != 0)THEN
RETURN FALSE
end if;
end//
delimiter ;

pourriez vous m'aider ?

merci d'avance
Configuration: Linux Fedora
Firefox 3.5.6

12 réponses

  1. quel est ton problème? un problème mysql ou dans ton prog?
    affiche l'erreur
    1. voici le message d'erreur : #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 'mod,ssmod,existe INT; SET mod = new.idmodele, ssmod = new.id_sousmodele; SELEC' at line 4
      1. et bien je pense que mod est le nom de ta table, or tu n'a pas mis de simple quote ' donc mysql interprete mod en tent que division (cf la fonction mod)

        au passage tu essaye de faire quoi avec ta requete?
        1. je n'avais pas pensé que mod pouvais être une fonction :p

          c'est modele_descendant le nom de la table :)

          Avec cette requête je cherche à vérifier qu'il n'y ait pas d'inscription genre

          4 5
          5 4

          dans ma table
          1. salut désolé du retard de réponse, mais tu porrait me montrer un aperçu de la base sur laquelle tu travail?
            1. http://gwendal.praud.free.fr/boutdebd.png

              je te donne un lien vers le bout de bd concerné
              et c'est pas grave pour le retard :p
              1. j'ai fait quelques modifications du trigger ces jours ci

                delimiter //
                CREATE trigger pasboucle before INSERT ON modele_descendant
                FOR each ROW
                BEGIN
                DECLARE modele,ssmod,existe INT;
                SET modele = new.idmodele, ssmod = new.id_sousmodele;
                SELECT count(*) into existe FROM modele_descendant WHERE idmodele=ssmod and id_sousmodele=modele ;
                IF(existe != 0)THEN
                rollback
                end if
                end//
                delimiter ;
                1. et tu essaye de ressortir quoi?
                  explique moi ta requete parceque malgre que j'ai beaucoup pratiqué mysql trigger je ne l'ai pas beaucoup utilisé
                  1. en fait un modele(modele principal) peut etre composé de sous modèles (modele descendant) et je veux qu'un sous modèle ne puisse pas avoir lui même comme sous modele son "père"
                    1. merci beaucoup mais je pense que je vais faire une fonction php ce sera plus simple pour moi

                      je vais la faire récursive et comme ça je peux vérifier un boucle à 2 mayons ou plus

                      merci encore

                      à la prochaine