9
votes

Créer une table automatiquement en fonction du fichier d'entrée dans mysql

J'ai un fichier avec un grand nombre de colonnes et je souhaite saisir ce fichier dans la table MySQL.

La chose est si nous disposons de fichiers avec, disons, 8 colonnes, nous allons d'abord créer une table par - xxx

puis nous entrerons le fichier par - xxx

mais la chose est, j'ai le fichier avec 150 colonnes et je veux Insérez automatiquement ce fichier dans la table MySQL (afin que je ne devrais pas avoir à créer d'abord le tableau). La première ligne de mon fichier est en-tête et doit être en tant que noms de colonne dans le tableau et chaque colonne et chaque ligne a un type de données différent.

y a-t-il un moyen facile de le faire de manière à ce que je puisse le faire Faites différentes choses avec cette table?

J'utilise la version de la ligne de commande MySQL version 5.5.20 (Windows 7).


0 commentaires

4 Réponses :


1
votes

Je ne pense pas que cela soit possible en utilisant MySQL tout droit. D'une manière ou d'une autre, les définitions de la colonne devraient être devinées. Vous devez probablement aller avec une langue 2ndary pour lire la première rangée, faire la table, puis importer.

Vous pouvez le faire à l'aide de MySqldump cependant.


2 commentaires

Merci pour votre réponse. Mais je suis nouveau à MySQL, pouvez-vous s'il vous plaît élaborer votre réponse.


MySQL ne peut pas deviner le type de données pour une colonne arbitraire dans un fichier. Vous pouvez utiliser une langue comme Perl pour lire le fichier, prenez la première ligne et construisez la table pour vous. Ou vous pouvez jeter les données d'origine à l'aide de MySqldump et ajoutera la déclaration «Créer une table» pour vous.



2
votes

Utilisez phpmyadmin. Il a la possibilité de créer une base de table sur la première ligne du fichier et devinez la structure de la table. Cliquez sur Lien "Importer" et sélectionnez votre fichier. N'oubliez pas de sélectionner le format pour adapter votre format de fichier, principalement CSV.

Si le fichier est trop gros pour s'intégrer à PHPMyAdmin, parfois, je "dirigez-vous" le fichier et utilisez le fichier tête dans phpmyadmin pour créer la table, puis importer le fichier à l'aide de la commande Charger les données.

Cela facilite ma vie.


0 commentaires

1
votes

Vous pouvez essayer d'utiliser le client SEQULPRO MySQL.

Avec cet outil, vous pouvez utiliser l'option "File-> Importer" et dans la fenêtre "CSV Importation de mappage de champ", au lieu de la sélectionner pour importer dans une table existante, vous pouvez choisir le bouton "Nouveau".

Il est préférable que votre CSV ait une ligne d'en-tête décrivant les noms de colonne, il offre donc les bons noms de colonne. L'outil est également bon pour deviner les types des colonnes en fonction du contenu.

Vous pouvez éventuellement éprouver des problèmes si VarcharN (255) est réglé comme type par défaut pour les champs de type de texte. Si tel est le cas, modifiez le type de ces champs au type de texte.


0 commentaires

0
votes

Si je comprends bien, vous avez un fichier texte généré avec différents types de données prêts à charger à partir de la ligne de commande. Voici les instructions de MySQL.

créer: https://dev.mysql.com/doc/ Refman / 5.7 / FR / MYSQL-BATCH-COMMANDS.HTML

modifier: https://dev.mysql.com/doc/refman/ 5.7 / fr / alter-table.html

Toutes les lignes de commande que j'utilise aussi. (Si quelqu'un a une vidéo pratique qui décrit chaque étape de l'utilisation de l'un de ces environnements de développeurs MySQL, cela pourrait être un peu gentil, il ne faut pas 20 étapes pour charger une table, bien que toujours probablement plus vite pour Tapez un à la main et utilisez une étape ou modifiez une décharge.).


0 commentaires