IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

DELETE multi-tables avec jointures


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut DELETE multi-tables avec jointures
    Bonjour,

    Je cherche à pouvoir supprimer un forum en une seule requête, donc à effacer également des autres tables les entrées en relation avec ce forum.

    Mais quoi que je fasse, MySQL me retourne une erreur de syntaxe du genre :
    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 'RIGHT JOIN sujet AS S ON F.id=S.id_forum RIGHT JOIN forum_prive AS FP' at line 2

    C'est possible de faire un DELETE sur plusieurs tables, d'après la doc, j'ai vu que oui, mais je commence à douter.

    Une des multiples requêtes que j'ai tenté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DELETE LOW_PRIORITY FROM forum AS F
    RIGHT JOIN sujet AS S ON F.id=S.id_forum
    RIGHT JOIN forum_prive AS FP ON F.id=FP.id_forum
    RIGHT JOIN message AS M ON S.id=M.id_sujet
    RIGHT JOIN nb_lecture_sujet AS NLS ON S.id=NLS.id_sujet
    RIGHT JOIN sujet_lecture_membre AS SLM ON S.id=SLM.id_sujet
    WHERE F.id=5
    Ma version de MySQL est la 5.0.18, donc normalement c'est ok.

    C'est possible de faire ceci, ou je suis contraint de le faire en plusieurs requêtes ?

  2. #2
    Membre Expert
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    DELETE LOW_PRIORITY F, S, FP, M, NLS, SLM
    FROM forum AS F
    RIGHT JOIN sujet AS S ON F.id=S.id_forum
    RIGHT JOIN forum_prive AS FP ON F.id=FP.id_forum
    RIGHT JOIN message AS M ON S.id=M.id_sujet
    RIGHT JOIN nb_lecture_sujet AS NLS ON S.id=NLS.id_sujet
    RIGHT JOIN sujet_lecture_membre AS SLM ON S.id=SLM.id_sujet
    WHERE F.id=5
    devrait marcher.

  3. #3
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    Je vais tenté ça, merci.

    Désolé de ma réponse tardive

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 147
    Par défaut
    Sinon, tu peux ajouter un "ON DELETE CASCADE" et ça va tout te supprimer comme il faut et automatiquement. Super pratique.

  5. #5
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    Oui, mais à ce que j'ai vu, faut que mes tables soient en INNODB, je les ai mises en MyISAM pour le fulltext.

    Et puis, j'ai pas mis de clefs étrangères sur mes tables

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 52
    Par défaut trigger ?
    Et avec des trigger ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. DELETE sur tables avec jointure
    Par iDaaX dans le forum Langage SQL
    Réponses: 1
    Dernier message: 08/03/2013, 08h46
  2. delete sur une table avec jointure
    Par Jarod51 dans le forum Requêtes
    Réponses: 2
    Dernier message: 30/09/2011, 10h26
  3. erreur de syntaxe DELETE multi-tables
    Par yayacameleon dans le forum Requêtes
    Réponses: 7
    Dernier message: 12/04/2006, 11h34
  4. Réponses: 10
    Dernier message: 27/03/2006, 14h40
  5. Sélection multi table avec condition
    Par iuz dans le forum Langage SQL
    Réponses: 8
    Dernier message: 05/05/2004, 15h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo