164 votos

¿Cómo puedo volcar los datos de algunas tablas SQLite3?

¿Cómo volcar los datos y sólo los datos, no el esquema, de algunas SQLite3 tablas de una base de datos (no todas las tablas). La descarga debe ser en formato SQL, ya que debe ser fácilmente volvió a entrar en la base de este último y debe realizarse desde la línea de comandos. Algo así como

sqlite3 db .dump

Pero sin dumping el esquema y seleccionar qué tablas para volcar.

203voto

CyberFonic Puntos 2218

Usted no dice lo que desea hacer con el archivo descargado.

Me gustaría utilizar el siguiente para obtener un archivo CSV, que me puede importar en casi todo

 .mode csv 
.header on 
.out file.dmp 
select * from emp;
 

Si quieres volver a insertar en una base de datos SQLite diferente entonces:

 .mode insert <target_table_name>
.out file.sql 
select * from emp
 

140voto

jellyfish Puntos 98

usted puede hacer esto consiguiendo diferencia de .sch y comandos .dump. por ejemplo, con grep:

 sqlite3 some.db .sch > schema
sqlite3 some.db .dump > dump
grep -v -f schema dump > data
 

data archivo contendrá sólo los datos sin esquema, algo como esto:

 BEGIN TRANSACTION;
INSERT INTO "table1" VALUES ...;
...
INSERT INTO "table2" VALUES ...;
...
COMMIT;
 

Espero que esto te ayuda.

36voto

polyglot Puntos 3627

No es la mejor manera, pero al menos no necesita herramientas externas (excepto grep, que es estándar en * nix cajas de todos modos)

sqlite3 database.db3 .dump | grep '^INSERT INTO "tablename"'

Pero necesitas hacer este comando para cada tabla que busca sin embargo.

Tenga en cuenta que esto no incluye el esquema.

33voto

Paul Egan Puntos 161

Puede especificar uno o más argumentos de mesa al comando especial .dump, por ejemplo, sqlite3 db ".dump 'table1' 'table2'" .

8voto

Drew Puntos 993

Como una mejora a la respuesta de Paul Egan, esto se puede lograr de la siguiente manera:

 sqlite3 database.db3 '.dump "table1" "table2"' | grep '^INSERT'
 

--o--

 sqlite3 database.db3 '.dump "table1" "table2"' | grep -v '^CREATE'
 

La advertencia, por supuesto, es que usted tiene que tener instalado grep.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X