Problème mysql

Résolu/Fermé
thegwendol Messages postés 25 Date d'inscription lundi 31 décembre 2007 Statut Membre Dernière intervention 15 décembre 2015 - 12 janv. 2010 à 02:16
thegwendol Messages postés 25 Date d'inscription lundi 31 décembre 2007 Statut Membre Dernière intervention 15 décembre 2015 - 13 janv. 2010 à 17:16
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

12 réponses

yacleouf Messages postés 438 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 8 juin 2015 39
12 janv. 2010 à 08:55
quel est ton problème? un problème mysql ou dans ton prog?
affiche l'erreur
0
thegwendol Messages postés 25 Date d'inscription lundi 31 décembre 2007 Statut Membre Dernière intervention 15 décembre 2015 16
12 janv. 2010 à 13:27
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
yacleouf Messages postés 438 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 8 juin 2015 39
12 janv. 2010 à 13:40
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
thegwendol Messages postés 25 Date d'inscription lundi 31 décembre 2007 Statut Membre Dernière intervention 15 décembre 2015 16
12 janv. 2010 à 14:39
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
thegwendol Messages postés 25 Date d'inscription lundi 31 décembre 2007 Statut Membre Dernière intervention 15 décembre 2015 16
12 janv. 2010 à 17:01
ça ne fonctionne toujours pas ... :'(
0
yacleouf Messages postés 438 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 8 juin 2015 39
13 janv. 2010 à 08:30
salut désolé du retard de réponse, mais tu porrait me montrer un aperçu de la base sur laquelle tu travail?
0
thegwendol Messages postés 25 Date d'inscription lundi 31 décembre 2007 Statut Membre Dernière intervention 15 décembre 2015 16
13 janv. 2010 à 10:24
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
thegwendol Messages postés 25 Date d'inscription lundi 31 décembre 2007 Statut Membre Dernière intervention 15 décembre 2015 16
13 janv. 2010 à 10:29
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
yacleouf Messages postés 438 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 8 juin 2015 39
13 janv. 2010 à 11:34
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
thegwendol Messages postés 25 Date d'inscription lundi 31 décembre 2007 Statut Membre Dernière intervention 15 décembre 2015 16
13 janv. 2010 à 11:46
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
yacleouf Messages postés 438 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 8 juin 2015 39
13 janv. 2010 à 15:11
Si je suis ton schéma, pourquoi tu ne définierais pas ton modèle descendant en tent que clé étrangère? il ne pourra pas contenir les modèles principaux.

Sinon regarde ce quil y a de dispo avec "inheritance" c4est les heritage sous mysql je croi que c'est dispo a partir de mysql5
http://laughingmeme.org/2004/08/14/mysql-and-the-case-for-class-table-inheritance/
j'espere que sa t'aidera
0
thegwendol Messages postés 25 Date d'inscription lundi 31 décembre 2007 Statut Membre Dernière intervention 15 décembre 2015 16
13 janv. 2010 à 17: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