2009-07-22 6 views
4

J'ai utilisé mysql et mysqldump pour apprendre à extraire des données d'une base de données, mais je me considère comme un débutant MySQL modéré, juste pour l'enregistrement. Ce que je voudrais faire est d'obtenir un sous-ensemble d'une base de données dans une toute nouvelle base de données sur un serveur différent, donc j'ai besoin de créer à la fois la base de données db/table et de remplir les enregistrements. Disons que ma base de données originale contient 10 tables de 100 lignes chacune. Ma nouvelle base de données contiendra 4 de ces tables (toutes les colonnes d'origine), mais un ensemble de données affiné de 40 lignes chacune. Ces 40 lignes sont isolées avec des instructions SELECT pas si courtes, une pour chaque table.Utiliser MySQLdump pour le sous-ensemble de migration de base de données

J'aimerais produire des fichiers .sql que je peux appeler depuis mysql pour charger/insérer mes données exportées. Comment puis-je générer ces fichiers sql? J'ai entendu dire que vous pouvez appeler une instruction select de mysqldump, mais que vous n'avez pas vu d'exemples pertinents avec des instructions select aussi longues que les miennes.

En ce moment, je peux produire une sortie sql qui est juste le jeu de résultats avec les noms de colonnes, mais pas de code d'insertion, etc.

aide est très appréciée.

+0

Désolé, pas sûr si j'ajouter des données supplémentaires ici ou en bas, si gentil de me répéter: Started cette voie, mais mon SELECT est très longues et jette des erreurs lorsque j'essaie de l'exécuter à partir de l'invite de commande. Alors ... puis-je faire mysqldump lire le SELECT à partir d'un fichier stocké? –

Répondre

9

Vous devrez probablement utiliser mysqldump pour exporter vos tables une à la fois et en utilisant la clause where

-w, --where = 'où condition'

Dump only selected records. Note that quotes are mandatory: 
"--where=user='jimf'" "-wuserid>1" "-wuserid<1" 

Pour exemple:

mysqldump database1 table1 --where='rowid<10' 

Voir docs: http://linux.die.net/man/1/mysqldump

+0

Démarré cette route, mais mon SELECT est très long et lance des erreurs lorsque je tente de l'exécuter à partir de l'invite de commande. Alors ... puis-je faire mysqldump lire le SELECT à partir d'un fichier stocké? –

1

mysqldump chaque table avec une clause Where comme Dennis a dit ci-dessus. une table à la fois et fusionner les scripts avec chat

cat customer.db order.db list.db price.db > my_new_db.db 
Questions connexes