|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Membre du Club
![]() Inscription : avril 2005 Messages : 112 ![]() |
Bonjour à tous,
Je suis en train de réaliser un formulaire de requète sur le web pour une base de donnée destinée à la recherche en linguistique. En réalité c'est plus un gigantesque tableau qu'une base de donnée (78 champs, 10800 tuples!!!)... Le tableau a été créé sous access, j'ai voulu l'importé dans MySQL, pour cela j'ai exporter ma table dans un fichier texte et j'ai recréer une table similaire dans MySQL (oui j'ai resaisie les 78 champs à la main Code :
LOAD DATA INFILE 'file_name.txt' INTO TABLE ma_table Y'a surement une option à mettre dans la fonction LOAD DATA mais je suis pas un expert de MySQL, sinon faut peut-être modifier le fichier texte, en voici un extrait (attention c'est pas bien lisible c'est juste pour vous montrer comment c'est encodé) : Citation:
Faut peut-être spécifié à MySQL que les nombre sont séparé par des tabulation? Merci d'avoir lu ce message jusqu'a la fin, A bientot, Andréas |
|
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : avril 2005 Messages : 112 ![]() |
Bonjour,
Je n'ai toujours pas trouvé de solution à mon problème... J'ai essayé avec le fichier Text généré par Access, en exportant ma base sous Excel puis en l'enregistrant en .csv mais il ne me garde toujours pas les chiffres après la virgule! Si quelqu'un s'y connait en importation Access/Excel sous MySQL merci de me donner la marche à suivre Y'a aussi un autre problème c'est que les champs vide sont automatiquement tranformé en "0" alors que je n'ai pas mis de clause "NOT NULL" et ni de "DEFAULT" lors de la création de la table. Merci de votre aide, ça serait vraiment bien si je pouvais trouver une solution, A+ Andréas |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 4 ![]() |
1) La première, la plus simple est d'utiliser "MySQL Migration Toolkit" (http://www.mysql.com/products/tools/migration-toolkit/). Ce produit te transcrit la structure ainsi que le contenu de tes tables access dans ta base MySQL. C'est pas mal du tout.
2) La deuxième, avant d'exporter la table access en format txt, j'ai modifié dans le panneau de configuration\Options Régionales\Nombres\Symbole décimal = . au lieu de la virgule (MySQL ne comprend pas 0,00 il attend un point en séparateur décimal). J'exporte ensuite ma table access au format txt en mettant en option : Tabulation comme séparateur et " comme délimiteur de texte. Je vérifie la cohérence du fichier txt. Je peu ensuite lancer le Load Data suivant : LOAD DATA INFILE 'C:/test.txt' INTO TABLE test.test FIELDS TERMINATED BY '\t' /** Champ séparé par Tabulation **/ OPTIONALLY ENCLOSED BY '"' /** délimiteur de Texte **/ ESCAPED BY '\\' /** Caractère d'échappement **/ LINES TERMINATED BY '\r\n' /** Fin de ligne **/; Dans cette dernière méthode il mettra la valeur 0 dans les zones numérique qui sont null, il faudra alors exécuter : "UPDATE NomDeTable SET NomDeChamp = null WHERE NomDeChamp = 0;" Si çà peut t'aider, Cyril. |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : avril 2005 Messages : 112 ![]() |
Un grand merci à toi Cyril!!!
J'ai pas encore testé ta technique mais ça me semble être la bonne Par contre pour le 0, en fait j'ai des champs où il faut le zéro et des champs où il le faut pas, ce qui complexifie un peu la chose mais bon je me débrouillerai. Je test ça d'ici peu et je te donne mon retour. Encore merci, à bientôt, Andréas |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : avril 2005 Messages : 112 ![]() |
J'ai testé MySQL Migration ToolKit et c'est une vraie merveille!!!!
Tout a marché sans aucun problème, bizarre qu'on en parle pas plus sur internet... En tout cas en faisant des recherche j'avais trouvé pleins de méthode mais rien qui parlait de migration toolkit. Sinon, j'ai aussi testé en remplacant les virgule par des points et ça a fait pareil... bizarre. A+ dede |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com