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 :

scinder une table


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de kirgan
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 127
    Par défaut scinder une table
    Bonjour à tous,

    je récupère une BD de +/- 11000 enregistrements qui tourne sous access, pour la mettre en mysql. Jusque là, pas de soucis, mais elle n'est pas hyper optimisée. Entre autres, j'aimerais retoucher la partie "localités"

    En gros voici la structure

    LOCALITE
    id (int)
    nom (varchar)
    cp (varchar)
    arrondissement (varchar)

    et voici ce vers quoi j'aimerais tendre :
    LOCALITE
    id (int)
    #idArrondissement (int)
    nom (varchar)
    cp (varchar)

    ARRONDISSEMENT
    idArrondissement (int)
    nomArrondissement (varchar)

    Vous voyez l'idée... Je voudrais passer à deux tables avec FK (j'ai fortement simplifié le schéma). Seulement voilà, 11'000 enregistrements!

    Y'a-t-il un moyen de faire cela de manière +/- automatique?
    J'imagine que je pourrais faire un SELECT DISTINCT ... INTO ... (edit: ou plutot insert into... select... )pour créer ma table Arrondissements, mais après? Des idées? Des pistes?

    Merci

  2. #2
    Membre éclairé Avatar de kirgan
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 127
    Par défaut
    euh c'est la fin de journée, faut m'excuser - je sais pourquoi je ne trouvais pas la solution : je ne cherchais pas au bon endroit!

    Si jamais quelqu'un passe par là et se pose la même question, voici une solution :

    On imagine donc ma table
    LOCALITE_OLD
    idLocalite
    nomLocalite
    nomArrondissement

    On crée une table arrondissement (idArrondissement, nomArrondissement) et on la peuple en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO arrondissement ('nomArrondissement')
    SELECT DISTINCT 'nomArrondissement' from LOCALITE_OLD
    Ensuite, on crée notre nouvelle table localité
    LOCALITE
    idLocalite
    nomLocalite
    idArrondissement

    Et on la peuple comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO localite ('nomLocalite', 'idArrondissement')
    SELECT 'nomLocalite', 'idArrondissement' FROM LOCALITE_OLD, ARRONDISSEMENT
    WHERE LOCALITE_OLD.'nomArrondissement' = ARRONDISSEMENT.'nomArrondissement'
    Y'a peut-être d'autres moyens, mais celui-ci fonctionne

    Dsl pour le post à la c**, je le tag en résolu et en délestage

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/04/2012, 20h18
  2. Scinder un enregistrement et le stocker dans une table MySQL
    Par JuniorBI dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 01/06/2010, 16h25
  3. Scinder ou non une table
    Par Invité1 dans le forum Bases de données
    Réponses: 7
    Dernier message: 07/03/2010, 11h33
  4. [AC-2007] Scinder une table liée à plusieurs tables: Quid des Données?
    Par Dr_No dans le forum Modélisation
    Réponses: 3
    Dernier message: 28/05/2009, 15h54
  5. Scinder une table en plusieurs tables
    Par hyol dans le forum Access
    Réponses: 4
    Dernier message: 22/02/2006, 14h05

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