9
votes

Extraire une table d'un fichier de vidage MySQL.SQL

J'ai une table de produits dans un fichier mysql.sql. Je souhaite extraire une table et placez-la dans son propre fichier. Comment allez-vous faire cela?


0 commentaires

6 Réponses :


0
votes

Je ne connais aucun outil pour analyser les fichiers de vidage mysql bruts de cette façon.

Soit Copy + Collez-le (potentiellement encombrant) ou importer dans une base de données temporaire, déposez tout le reste et renvoie la table dans un fichier.


2 commentaires

Il n'y aurait aucune raison de supprimer tout le reste, vous pouvez les tables individuelles mysqldump


@stew bon point. @OP Voici comment: dev.mysql.com/doc/refman /5.1/fr/...



0
votes

Si la décharge a été effectuée avec la syntaxe d'insertion étendue, les données de table réelles seront effectuées sous forme de ligne unique dans le fichier de vidage: xxx

que vous pourriez simplement grep. L'extraction de la définition de table réelle sera plus difficile, bien qu'elle soit immédiatement au-dessus de la ligne de données. N'ayez pas accès à une coquille appropriée pour le moment, mais je vais en haut de la tête, quelque chose comme ça pourrait faire l'astuce (en pseudo-code): xxx

Vous pouvez extraire la création DDL avec une tête / la queue judicieuse et les numéros de ligne que nous venons de récupérer: xxx

gardez à l'esprit que je vais au sommet de ma tête À ce sujet, il est donc presque garanti de ne pas fonctionner, mais devrait être suffisant pour vous aider à démarrer.


0 commentaires

23
votes

J'ai trouvé Cette belle solution < / a>, vous devez télécharger Ceci script sur votre serveur et tapez xxx

ceci extraire votre table dans votre_table_name.sql


option d'option

Maintenant, vous pouvez le renommer à l'aide de ce type de commande xxx

et à repousser avec xxx


2 commentaires

Soyez prudent: avec l'extraction d'une table unique d'une vidage complète, les «relevés définis» au début d'une vidange sont perdues, par exemple: définir des noms UTF8; - Donc, vous pouvez importer une table UTF8 et obtenir des données brouillées car le client utilise un encodage incorrect! même problème avec toutes les autres solutions ....


C'est correct, merci pour cette information



2
votes

J'ai rencontré ce problème il y a un moment et j'ai écrit un script Perl. Cela a bien fonctionné, mais c'était une version plus ancienne de MySQL. Appelez-le comme:
extraire.pl -Table = TableMame mysqldumpfile.sql> récupéré_table.sql xxx


0 commentaires

2
votes

Vous pouvez simplement exécuter un éditeur de flux pour filtrer et transformer la commande de texte comme ci-dessous:

$ sed -n -e '/CREATE TABLE.*products/,/CREATE TABLE/p' mysql.sql > products.sql


0 commentaires

0
votes

Si vous souhaitez extraire une base de données, vous pouvez utiliser:

sed -n '/^-- Current Database: `blogs`/,/^-- Current Database: `/p' dump.sql > blogs.sql 2>error


0 commentaires