Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/01/2012, 22h30   #1
Invité de passage
 
Inscription : septembre 2005
Messages : 18
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 18
Points : 3
Points : 3
Par défaut Supprimer une ligne dans plusieurs tables

Bonsoir,

Je souhaiterais supprimer une ligne dans plusieurs table d'une base Mysql, le pb c'est que j'ai environ 150 tables et j'ai pas envie de les taper toutes à la main

Mais bon je trouve pas, est ce que vous connaitriez une solution ?

Merci
rjulie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 13h39   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 331
Points : 18 331
Envoyer un message via MSN à CinePhil
Si cela veut dire que vous avez la même ligne dans plusieurs tables, c'est à dire plusieurs tables avec la même structure, c'est que vous avez mal conçu votre base de données !

Expliquez mieux ce que vous souhaitez faire en fournissant un exemple.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 21h01   #3
Invité de passage
 
Inscription : septembre 2005
Messages : 18
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 18
Points : 3
Points : 3
Ca s'est fort possible !

En fait j'ai plusieurs table avec des Id et je voudrais donc supprimer dans toutes les tables toutes les lignes contenant un id donné. Mais bon j'ai pas envie de me taper toutes les noms des tables dans le sélect
rjulie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 21h22   #4
Invité de passage
 
Inscription : septembre 2005
Messages : 18
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 18
Points : 3
Points : 3
Ce que j'essaye de faire c'est un truc de ce genre, mais je sais que ça ne marche pas en Mysql :

Code :
SELECT idpseudo FROM SHOW TABLES WHERE idpseudo = 'xp93'
Il faudrait que j'arrive à récupérer le résultat de show tables
rjulie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 06h11   #5
Membre Expert
 
Homme Eric Dureuil
Développeur informatique
Inscription : avril 2011
Messages : 874
Détails du profil
Informations personnelles :
Nom : Homme Eric Dureuil
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2011
Messages : 874
Points : 1 361
Points : 1 361
salut,

2 solutions:
  • procédure stockée avec un parcours de la liste des tables(`TABLES` avec la condition sur la colonne `TABLE_SCHEMA`='nom de ta bd' et tu récupères la colonne `TABLE_NAME`) dans `information_schema` via un curseur... dans la boucle de lecture du curseur tu appliques une requête préparée qui fait tes delete...
  • tu fais un show table dont tu récupères le résultat dans un langage tiers (PHP par exemple) et où tu fais une boucle qui traite tes delete...

enfin, y a clairement à te poser la question pourquoi tu as autan de table avec un identifiant identique qui s'y ballade... et donc à revoir ton modèle de donnée certainement...

__________________
Eric Dureuil, développeur web, c/c++, java indépendant
soyons
pensez à mettre et
ericd69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 09h27   #6
Invité de passage
 
Inscription : septembre 2005
Messages : 18
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 18
Points : 3
Points : 3
Merci pour la solution
rjulie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 11h08   #7
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 331
Points : 18 331
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par rjulie Voir le message
Ca s'est fort possible !

En fait j'ai plusieurs table avec des Id et je voudrais donc supprimer dans toutes les tables toutes les lignes contenant un id donné. Mais bon j'ai pas envie de me taper toutes les noms des tables dans le sélect
Euh... si tu as un identifiant dans la table "personne" qui porte le numéro 12 et un identifiant dans la table "vehicule" qui porte le numéro 12, ce ne sont pas les mêmes données ! Une personne n'est pas un véhicule et vice versa !

Toujours pas compris pourquoi tu veux supprimer des lignes/identifiants soit disant identiques dans plusieurs tables !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2012, 16h44   #8
Invité de passage
 
Inscription : septembre 2005
Messages : 18
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 18
Points : 3
Points : 3
J'ai pas dit qu'elles était identique, mais j'ai besoin de supprimer dans chaque table la ligne qui avait pour identifiant 'xxx'

Après c'est clair que la base n'est peut être pas optimisée, mais ça suffit à mon besoin
rjulie est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h23.


 
 
 
 
Partenaires

Hébergement Web