2009-02-12 9 views
10

Dites que j'ai une vue dans ma base de données, et je veux envoyer un fichier à quelqu'un pour créer la sortie de cette vue sous forme de tableau dans leur base de données. Bien sûr, mysqldump n'exporte que l'instruction 'create view ...' (bien, d'accord, elle inclut la table create, mais pas de données).Dump MySQL vue sous forme de tableau avec des données

Ce que j'ai fait est simplement de dupliquer la vue comme une vraie table et de le vider. Mais pour une grande table, il est lent et inutile:

create table tmptable select * from myview 

Court de créer un script qui imite le comportement de mysqldump et fait cela, est-il une meilleure façon?

+0

La vue inclut une colonne spatiale, avec laquelle j'ai rencontré des problèmes lors de l'importation à l'aide de fichiers CSV. :( – barryhunter

+1

Kinda fermant la boucle sur ceci, a finalement fait le ménage et libéré le script que j'ai mis en place pour résoudre ceci: https://github.com/barryhunter/fakedump - il fait comme suggeted, juste courir la question comme " Sélectionnez * from view "et écrivez-le dans un format similaire à mysqldump – barryhunter

Répondre

4

Une option serait de faire une requête dans un fichier CSV et de l'importer. Pour sélectionner dans un fichier CSV:

De http://www.tech-recipes.com/rx/1475/save-mysql-query-results-into-a-text-or-csv-file/

SELECT order_id,product_name,qty 
FROM orders 
INTO OUTFILE '/tmp/orders.csv' 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
+1

Si vous n'avez pas accès au shell du serveur mysql, cela ne fonctionnera pas.Vous avez d'autres solutions? –

3

OK, en fonction de votre commentaire d'échec CSV, commencer par la réponse de Paul. Faire les modifications suivantes à elle:

- FIELDS TERMINATED BY ',' 
+ FIELDS TERMINATED BY ',' ESCAPED BY '\' 

Lorsque vous avez terminé avec cela, du côté de l'importation, vous allez faire une « données de charge infile » et utiliser les mêmes fin/joint/échappé à des déclarations.

+0

besoin d'échapper au caractère d'échappement, comme ceci 'FIELDS TERMINATED BY ',' ESCAPED BY '\\''. –

Questions connexes