¿Cómo importo archivos .sql a SQLite 3?

98

Tengo archivos .sql que tienen el siguiente contenido:

#cat db.sql
create table server(name varchar(50),ipaddress varchar(15),id init)
create table client(name varchar(50),ipaddress varchar(15),id init)

¿Cómo importo este archivo a SQLite para que se creen automáticamente?

webminal.org
fuente
sqlite3 DB.db <db.sql Error: SQL incompleto: crear servidor de tabla (nombre varchar (50), ipaddress varchar (15), id init) crear cliente de tabla (nombre varchar (50), ipaddress varchar (15), id init ) ¿Qué significa este error? Probé ambos métodos> .read db.sql y sqlite3 DB.db <db.sql
webminal.org

Respuestas:

164

Desde un indicador de sqlite:

sqlite> .read db.sql

O:

cat db.sql | sqlite3 database.db

Además, su SQL no es válido; necesita ;al final de sus declaraciones:

create table server(name varchar(50),ipaddress varchar(15),id init);
create table client(name varchar(50),ipaddress varchar(15),id init);
Dominic Rodger
fuente
sqlite3 DB.db <db.sql Error: SQL incompleto: crear servidor de tabla (nombre varchar (50), ipaddress varchar (15), id init) crear cliente de tabla (nombre varchar (50), ipaddress varchar (15), id init ) ¿Qué significa este error? Probé ambos métodos> .read db.sql y sqlite3 DB.db <db.sql ... Gracias
webminal.org
1
gracias Está funcionando ahora. Me perdí e incluyó caracteres no válidos como "-". Ahora está bien ¡¡¡Gracias !!!
webminal.org
@lakshmipathi, si está funcionando, puede marcar una de las dos respuestas que respondieron a su pregunta como aceptada haciendo clic en la marca debajo del recuento de votos junto a la respuesta.
Dominic Rodger
59

Utilice sqlite3 database.sqlite3 < db.sql. Deberá asegurarse de que sus archivos contengan SQL válido para SQLite.

Eifion
fuente
Yo también (sintaxis de línea de comandos de Windows). Gracias. Sin embargo, seguro que es lento.
Barton
2
Me impacientaba la construcción de un archivo .sql de 40 + Mb, terminé sqlite3 database.sqlite3 <db.sql a favor de sqlite> .read db.sql. Resulta que la alternativa es igualmente lenta.
Barton
18

Alternativamente, puede hacer esto desde una línea de comandos de Windows / archivo por lotes:

sqlite3.exe DB.db ".read db.sql"

Donde DB.db es el archivo de base de datos y db.sql es el archivo SQL para ejecutar / importar.

eureka
fuente
esto funcionó para mí, aunque ejecuté sqlite3 como un comando en la terminal, así que:sqlite3 DB.db ".read db.sql"
Bugbeeb
16

También puedes hacer:

sqlite3 database.db -init dump.sql
Ian Newland
fuente