Eu inicio o sqlite3 versão 3.7.7, unix 11.4.2 usando este comando:
sqlite3 auction.db
onde leilão.db ainda não foi criado.
sqlite> auction.db < create.sql;
me dá este erro: near "auction": syntax error
Como posso executar o script?
Existem muitas maneiras de fazer isso, uma delas é:
sqlite3 auction.db
Seguido por:
sqlite> .read create.sql
Em geral, o projeto SQLite tem uma documentação realmente fantástica! Eu sei que muitas vezes procuramos o Google antes dos documentos, mas no caso do SQLite, os documentos realmente são redações técnicas no seu melhor. É limpo, claro e conciso.
.read
comando diretamente dosqlite3
comando:sqlite3 autction.db '.read create.sql'
.Você quer alimentar o
create.sql
parasqlite3
partir a casca, não de dentro de si SQLite:A versão do SQLite do SQL não entende
<
para arquivos, seu shell sim.fonte
<
como redirecionamento de entrada. (Por exemplo, PowerShell.)<
sairá do prompt SQLite imediatamente e retornará o código de erro ao shell..read file.sql
deixará o prompt ativo e-init file.sql
sempre retornará 0, então<
é o melhor para scripts. Também é multiplataforma, ao contrário do.read
que não suporta caminhos do Windows.Para executar consultas simples e retornar ao meu script de shell, acho que isso funciona bem:
fonte
sqlite3 example.db 'SELECT * FROM some_table;'
, em vez desqlite3
lê comandos para executar não apenas a partirstdin
, mas também a partir do último argumento.Para quem usa PowerShell
fonte
Se você estiver usando o Windows CMD você pode usar este comando para criar um banco de dados usando sqlite3
Se você não tem um banco de dados com esse nome sqlite3 irá criar um, e se você já tiver um, ele irá executá-lo de qualquer maneira, mas com o erro "TABLENAME já existe", acho que você também pode usar este comando para alterar um já existente banco de dados (mas não tenho certeza)
fonte