|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 62 ![]() |
Bonjour,
Ma question pourrait être posée pour n'importe quel SGBDR, mais puisque je travaille sur MySQL, alors je poste dans ce forum. En effet, j'ai une table que je souhaite diviser en plusieures tables avec des relations entre elles pour les enregistrements qui se répètent. Y a-t-il une manière de faire faire cela par MySQL via des requêtes sans mettre la main dans les correspondances entre les IDs surtout qu'il s'agit de centaines d'enregistrements? Merci d'avance. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : janvier 2006 Messages : 951 ![]() |
La derniere fois que j'ai du faire ça j'ai créer les nouvelles tables
CREATE TABLE... ensuite tu crées des PK et tes FK et les autres contraintes ensuite c'est essentiellement des INSERT INTO table2 ... SELECT primaryKeyOfTable1 ... FROM table1 .... pour copier les données dans la table controlée par la clés étrangère. mais avant de savoir faire celà, il faut savoir faire une sauvegarde et une restauration parce qu'il arrive qu'on se perde pendant l'opération et il est bon de pouvoir recommencer (on crée des doublons, on perd de l'info ... )! L'idéal c'est de proposer des vues qui feront imposteur avec le nom des tables que tu as démantelées et qui permettront d'adoucir la transition (puisque les données seront toujours accessible sous le même nom en lecture, attention pas en écriture).
__________________
PHP fait nativement la validation d'adresse électronique Utilisez le bouton résolu! |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 62 ![]() |
Ce serait un peu hasardeux de procéder de la sorte. Merci tout de même
|
|
|
00
|
|
|
#4 | ||||
![]() ![]() |
Cette partie de l'énoncé de ton besoin m'inquiète !
Par principe, on n'enregistre qu'une seule fois une information dans une base de données ; principe de non-redondance de l'information. Tu peux expliquer plus en détail ce que tu cherches à faire, avec Structure de la table existante petit exemple de données et résultat souhaité ? Sinon le principe donné par gene69 est le bon. Deux solutions : 1) La création et l'insertion directe si les données ne doivent pas changer de type, de structure... Code :
Code :
__________________
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 ! |
||||
|
00
|
|
|
#5 | |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 62 ![]() |
Citation:
Ma table d'origine était sous excel (liste de données), ce qui explique cette situtation. |
|
|
|
00
|
|
|
#6 |
![]() ![]() |
Tu ne nous as toujours pas expliqué plus concrètement de quoi il s'agit.
Nous ne pouvons donc pas t'aider davantage !
__________________
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 ! |
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 62 ![]() |
Voilà, j'ai une table "table" que je souhaite diviser en 2 tables: "table1" et "table2"
table id champ1 champ2 champ3 champ4 1 donnée11 donnée21 donnée31 donnée41 2 donnée12 donnée22 donnée32 donnée42 3 donnée13 donnée23 donnée33 donnée43 4 donnée14 donnée23 donnée33 donnée43 5 donnée15 donnée23 donnée33 donnée43 6 donnée16 donnée24 donnée34 donnée44 7 donnée17 donnée24 donnée34 donnée44 table1 id champ1 table2_id 1 donnée11 1 2 donnée12 2 3 donnée13 3 4 donnée14 3 5 donnée15 3 6 donnée16 4 7 donnée17 4 table2 id champ2 champ3 champ4 1 donnée21 donnée31 donnée41 2 donnée22 donnée32 donnée42 3 donnée23 donnée33 donnée43 4 donnée24 donnée34 donnée44 Je cherche un moyen d'automatiser l'association entre le champ table2_id de table1 et le champ id de table2, en virant les doublons de cette dernière table. |
|
|
00
|
|
|
#8 |
![]() ![]() |
Avec des données aussi abstraites, je ne vois toujours pas de quoi il s'agit et je ne peux pas t'aider à faire ça correctement.
Du concret !
__________________
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 ! |
|
00
|
Copyright © 2000-2012 - www.developpez.com