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?


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

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.


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.


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.