Como faço para importar arquivos .sql para o SQLite 3?

98

Tenho arquivos .sql com o seguinte conteúdo:

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

Como importo este arquivo para o SQLite para que sejam criados automaticamente?

webminal.org
fonte
sqlite3 DB.db <db.sql Erro: SQL incompleto: criar servidor de tabela (nome varchar (50), ipaddress varchar (15), id init) criar cliente de tabela (nome varchar (50), ipaddress varchar (15), id init ) o que significa esse erro? Tentei os dois métodos> .read db.sql e sqlite3 DB.db <db.sql
webminal.org

Respostas:

164

Em um prompt sqlite:

sqlite> .read db.sql

Ou:

cat db.sql | sqlite3 database.db

Além disso, seu SQL é inválido - você precisa ;no final de suas instruções:

create table server(name varchar(50),ipaddress varchar(15),id init);
create table client(name varchar(50),ipaddress varchar(15),id init);
Dominic Rodger
fonte
sqlite3 DB.db <db.sql Erro: SQL incompleto: criar servidor de tabela (nome varchar (50), ipaddress varchar (15), id init) criar cliente de tabela (nome varchar (50), ipaddress varchar (15), id init ) o que significa esse erro? Eu tentei os dois métodos> .read db.sql e sqlite3 DB.db <db.sql ... Obrigado
webminal.org
1
obrigado Está funcionando agora. Eu perdi; e incluiu caracteres inválidos como "-". Agora está tudo bem. Obrigado !!!
webminal.org
@lakshmipathi, se estiver funcionando, você pode marcar uma das duas respostas que responderam à sua pergunta como aceita clicando na marca de seleção abaixo da contagem de votos ao lado da resposta.
Dominic Rodger
59

Use sqlite3 database.sqlite3 < db.sql. Você precisará certificar-se de que seus arquivos contêm SQL válido para SQLite.

Eifion
fonte
Eu também (sintaxe de linha de comando do Windows). Obrigado. Claro que é lento.
Barton
2
Fiquei impaciente ao compilar a partir de um arquivo .sql de 40 Mb +, finalizei sqlite3 database.sqlite3 <db.sql em favor de sqlite> .read db.sql. A alternativa é igualmente lenta, ao que parece.
Barton,
18

Como alternativa, você pode fazer isso em um prompt de linha de comando / arquivo em lote do Windows:

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

Onde DB.db é o arquivo de banco de dados e db.sql é o arquivo SQL a ser executado / importado.

eureka
fonte
funcionou para mim, embora eu executei sqlite3 como um comando no terminal, então:sqlite3 DB.db ".read db.sql"
Bugbeeb
16

Você também pode fazer:

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