Tengo una tabla de productos en un archivo mysql.sql. Deseo extraer esa tabla y colocarla en su propio archivo. ¿Cómo harías para hacer esto?Extracción de una tabla de un archivo de volcado mysql.sql
Respuesta
No conozco ninguna herramienta para analizar archivos de volcado mySQL brutos de esta manera.
Copie o pegue (potencialmente engorroso) o impórtelo a una base de datos temporal, elimine todo lo demás y vuelva a colocar la tabla en un archivo.
Si el vertedero se hizo con la sintaxis extendida de inserción, a continuación, los datos reales de la tabla se llevará a cabo como una sola línea en el archivo de volcado:
INSERT INTO tablename (field, ...) VALUES (data, ...), (data, ...), (etc..)
que podría simplemente grep a cabo. Extraer la definición real de la tabla será más difícil, aunque DEBERÍA estar inmediatamente encima de la línea de datos. No tienen acceso a una concha adecuada en el momento, pero salirse de la parte superior de mi cabeza, algo como esto puede hacer el truco (en pseudo-código):
# retrieve line # that data insertion for the wanted table occurs on
DATALINE=`grep -l 'INSERT INTO tablename' dumpfile.sql`
# limiting ourselves to the part of the file up to the data line, find the line number
# of the last CREATE TABLE, which SHOULD be the one creating the table for the data
CREATELINE=`head -$DATALINE|grep -l 'CREATE TABLE'|tail -1|awk '{"print $1"}'`
El puede extraer la creación DDL con juiciosa los números de línea de cabeza/cola y que sólo recuperarán:
CREATE=`head -$CREATELINE dumpfile.sql|tail -$($CREATELINE - $DATALINE - 1)`
tener en cuenta que voy de la parte superior de mi cabeza en esto, así que es casi seguro que no funciona, pero debería ser suficiente para comienza.
He encontrado this nice solution, usted tiene que descargar this script en su servidor y escriba
$> ./MyDumpSplitter.sh yourfile.sql your_table_name
Esto extraerá su mesa en your_table_name.sql
Optionnal
Ahora puede cambiarle el nombre usando este tipo de comando
$> sed -i 's/`your_table_name`/`your_table_name2`/g' your_table_name.sql
y re-inyección con
mysql> source your_table_name.sql;
tenga cuidado: con la extracción de una sola tabla de un volcado completo, las 'sentencias SET' al comienzo de un volcado se pierden, por ejemplo: SET NAMES utf8; - por lo que puede importar una tabla utf8 y obtener datos codificados porque el cliente usa una codificación incorrecta. mismo problema con todas las demás soluciones .... – michabbb
Eso es correcto, gracias por esta información –
me encontré con ese problema hace un tiempo y escribió un script Perl. Funcionó bien, pero era una versión anterior de MySQL. Llamar así:
extract.pl -table=TABLENAME mysqldumpfile.sql > recovered_table.sql
#!/usr/bin/perl -s -wnl #extract a single table from a mysql dump BEGIN { $table or warn "Usage: $0 -table=TABLE_TO_EXTRACT mysqldumpfile.sql" and exit 1; } /^DROP TABLE IF EXISTS `$table`/ .. /^UNLOCK TABLES;$/ and print;
simplemente se puede ejecutar editor de flujo para el filtrado y la transformación de comando de texto, como a continuación:
$ sed -n -e '/CREATE TABLE.*products/,/CREATE TABLE/p' mysql.sql > products.sql
Si desea extraer una base de datos que podría utilizar:
sed -n '/^-- Current Database: `dbname`/,/^-- Current Database: `/p' dumpfile > dbname.sql 2>error
Por ejemplo:
sed -n '/^-- Current Database: `blogs`/,/^-- Current Database: `/p' dump.sql > blogs.sql 2>error
- 1. MSMQ vs Temporada de volcado de tabla
- 2. Mysqldumper: Volcado de cada tabla por separado
- 3. Convierta un volcado de PostgreSQL en un volcado de MySQL
- 4. Formato de archivo de volcado de núcleo
- 5. Volcado de un multiprocesamiento.Cola en una lista
- 6. ¿Cómo restauro un archivo de volcado de mysqldump?
- 7. Cómo analizar un archivo de volcado de bloqueo usando GDB
- 8. Volcado de memoria en el archivo
- 9. Cómo importar un volcado de oráculo en un espacio de tabla diferente
- 10. Importar tablas específicas del archivo de volcado de oráculo?
- 11. ¿Dónde está el archivo de volcado MySQL?
- 12. salida de volcado en un archivo y el navegador
- 13. ¿Cómo analizar un archivo de volcado desde un archivo DLL de Delphi?
- 14. Crear un volcado de almacenamiento en java desde un volcado de memoria de Windows
- 15. ¿Cómo elimino una tabla de un mysqldump
- 16. La extracción de datos desde un simple archivo XML
- 17. ¿Por qué un volcado SVN de una sola revisión es más grande que un volcado completo?
- 18. ¿Cuándo se realizó la extracción de un archivo en TFS?
- 19. Volcado de CouchDB a archivo y carga desde el archivo
- 20. Volcado PHP $ _REQUEST al archivo
- 21. ¿Cómo uso un archivo de volcado para diagnosticar una pérdida de memoria?
- 22. Cómo importar el volcado de SQL a una tabla sin sobreescribir los campos duplicados
- 23. ¿Utiliza esta técnica de extracción de nombre de archivo bash?
- 24. análisis de un volcado de Wikipedia
- 25. archivo de volcado de MySQL y líneas comentadas
- 26. Memoria de volcado de un proceso
- 27. artículos Extracción De un QueryDict
- 28. ¿Cómo puedo anular el parámetro ENGINE = INNODB mientras importo un archivo de volcado de MySQL?
- 29. analizar el archivo de volcado de aplicación C#
- 30. extracción de un campo de una ModelForm dinámica
No habría ninguna razón para dejar todo lo demás, puede mysqldump tablas individuales – stew
@stew buen punto. @OP así es cómo: http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html # option_mysqldump_tables –