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 :

Comment effacer plusieurs tables à la fois ?


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 309
    Points : 61
    Points
    61
    Par défaut Comment effacer plusieurs tables à la fois ?
    Salut

    J'ai une table Agenda avec Agenda_Id, je voudrais effacer un Agenda_id précis mais j'ai aussi cet Id dans une table2 qui contient un table2_Id qui peut se trouver dans table3 et dans table3 j'ai un table3_id qui peut se retrouver dans table4. comment tout effacer en une seule requête DELETE avec des inner join ?

    Merci pour votre aide

  2. #2
    Membre averti Avatar de Soutou
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 328
    Points : 380
    Points
    380
    Par défaut Re: Comment effacer plusieurs tables à la fois ?
    Citation Envoyé par AsmCode
    Salut

    J'ai une table Agenda avec Agenda_Id, je voudrais effacer un Agenda_id précis mais j'ai aussi cet Id dans une table2 qui contient un table2_Id qui peut se trouver dans table3 et dans table3 j'ai un table3_id qui peut se retrouver dans table4. comment tout effacer en une seule requête DELETE avec des inner join ?

    Merci pour votre aide
    Tu as essayé un truc du genre :

    DELETE FROM Agenda WHERE Agenda_ID =
    (SELECT table2_ID FROM table2 WHERE table2_ID =
    (SELECT table3_ID FROM table3 WHERE ... ) )

  3. #3
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    Salut,


    2 solutions :

    - Tu configures ta DB pour autoriser les DELETE en cascade (je ne sais pas si ça existe avec MySQL, je connais mal cette DB)

    - Tu dois supprimer dans chaque table, dans l'ordre en fonction des dépendances...

    @+

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 309
    Points : 61
    Points
    61
    Par défaut
    En fait j'ai trouvé un moyen, je met le 2e id a effacer dans un recordset selon ce qu'il a trouvé avec le premier id, et je parcours ce recordet pour effacer la table3

  5. #5
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Sinon tu as toujours le DELETE multi-tables à partir de MySQL 4.0

    http://dev.mysql.com/doc/refman/4.1/en/delete.html

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 309
    Points : 61
    Points
    61
    Par défaut
    Ouaip j'ai vu ça, mais je n'ai pas bien saisi comment faire la syntaxe correctement, ça serait quoi la syntaxe pour pouvoir effacer dans mon cas ?

    Exemple: J'ai une table1 avec table1_Id

    J'ai une table2 avec Table2_Table1_Id et Table2_Id

    J'ai une table3 avec Table3_id et Table3_table2_id

    et j'ai une table4 avec table4_id et table4_table3_id

    merci

  7. #7
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Tu as plein d'exemples dans le lien que je t'ai donné
    Tente au moins de construire quelque chose par toi-même et reviens ici si jamais ça ne fonctionne pas...

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 309
    Points : 61
    Points
    61
    Par défaut
    Ben justement, j'ai essayé hier

    Mais ça ne fonctionnais pas bien, j'ai essayé:

    delete table1, table2, table3, table4 from table1, table2, table3, table4 where table1_id = variable and table2_table1_id = table1_id and table3_table2_id = table2_id and table4_table3_id = table3_id

    mais ça ne fonctionne pas, ça n'efface rien. :o

  9. #9
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Un SELECT avec les mêmes jointures te renvoie des résultats ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/12/2006, 10h30
  2. Comment modéliser plusieurs tables ?
    Par nxp dans le forum Schéma
    Réponses: 11
    Dernier message: 27/07/2006, 16h35
  3. Réponses: 6
    Dernier message: 19/05/2006, 14h22
  4. [DTS] comment inserer plusieurs tables
    Par argv666 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 21/11/2005, 16h45
  5. creation de plusieur table à la fois .
    Par donny dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 19/05/2005, 11h31

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