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. 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
    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. 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. 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. 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. salut désolé du retard de réponse, mais tu porrait me montrer un aperçu de la base sur laquelle tu travail?
              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. 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. 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. quel est ton problème? un problème mysql ou dans ton prog?
                      affiche l'erreur