2009-02-12 18 views
10

Digamos que tengo una vista en mi base de datos, y quiero enviar un archivo a alguien para crear el resultado de esa vista como una tabla en su base de datos.Dump MySQL vista como una tabla con datos

mysqldump por supuesto, solo exporta la declaración 'create view ...' (bueno, está bien, incluye la tabla de creación, pero no hay datos).

Lo que he hecho es simplemente duplicar la vista como una tabla real y volcarla. Pero para una mesa grande es lento y derrochador:

create table tmptable select * from myview 

corto de crear una secuencia de comandos que imita el comportamiento de los mysqldump y hace esto, hay una manera mejor?

+0

La vista incluye una columna espacial, con la que he tenido problemas al importar utilizando archivos CSV. :( – barryhunter

+1

Un poco cerrando el ciclo en esto, finalmente me puse a arreglar y liberar el script que creé para resolver esto. Https://github.com/barryhunter/fakedump - hace lo que se sugiere, simplemente ejecutando una consulta como " seleccione * de la vista "y realmente lo escriba en un formato similar a mysqldump. – barryhunter

Respuesta

4

Una opción sería realizar una consulta en un archivo CSV e importarlo. Para seleccionar en un archivo 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 no tiene acceso al shell del servidor mysql, esto no funcionaría. ¿Alguna otra solución? –

3

OK, así que basado en su comentario fracaso CSV, comenzar con la respuesta de Pablo. Realice el siguiente cambio a ella:

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

Cuando haya terminado con eso, en el lado de las importaciones que va a hacer un "archivo de entrada de datos de carga" y utilizar el mismo deshecho/cerrado/escapado declaraciones.

+0

Solo para señalar que si usa \ usted necesita escapar del carácter de escape, como este 'FIELDS TERMINATED BY ',' ESCAPED BY '\\''. –

Cuestiones relacionadas