Problème mysql

Résolu
thegwendol Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -  
thegwendol Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -
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. yacleouf Messages postés 461 Statut Membre 39
     
    quel est ton problème? un problème mysql ou dans ton prog?
    affiche l'erreur
    0
  2. thegwendol Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   16
     
    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
    0
  3. yacleouf Messages postés 461 Statut Membre 39
     
    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?
    0
  4. thegwendol Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   16
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. thegwendol Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   16
     
    ça ne fonctionne toujours pas ... :'(
    0
  7. yacleouf Messages postés 461 Statut Membre 39
     
    salut désolé du retard de réponse, mais tu porrait me montrer un aperçu de la base sur laquelle tu travail?
    0
  8. thegwendol Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   16
     
    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
    0
  9. thegwendol Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   16
     
    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 ;
    0
  10. yacleouf Messages postés 461 Statut Membre 39
     
    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é
    0
  11. thegwendol Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   16
     
    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"
    0
  12. thegwendol Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   16
     
    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
    0