¿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?


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);

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.


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.


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.