Comienzo sqlite3 versión 3.7.7, unix 11.4.2 usando este comando:
sqlite3 auction.db
donde Auction.db aún no se ha creado.
sqlite> auction.db < create.sql;
me da este error: near "auction": syntax error
¿Cómo puedo ejecutar el script?
Hay muchas formas de hacer esto, una de ellas es:
sqlite3 auction.db
Seguido por:
sqlite> .read create.sql
En general, ¡el proyecto SQLite tiene una documentación realmente fantástica! Sé que a menudo recurrimos a Google antes que los documentos, pero en el caso de SQLite, los documentos realmente son redacción técnica en su mejor momento. Es limpio, claro y conciso.
.read
comando directamente desde elsqlite3
comando:sqlite3 autction.db '.read create.sql'
.Desea alimentar el
create.sql
ensqlite3
de la cáscara, no desde dentro de la propia SQLite:La versión de SQL de SQLite no comprende los
<
archivos, su shell lo hace.fuente
<
como redirección de entrada. (Por ejemplo, PowerShell.)<
saldrá del indicador SQLite inmediatamente y devolverá el código de error al shell..read file.sql
dejará el indicador y-init file.sql
siempre devolverá 0, por lo que<
es lo mejor para la creación de scripts. También es multiplataforma, a diferencia de.read
lo que no admite rutas de Windows.Para ejecutar consultas simples y volver a mi script de shell, creo que esto funciona bien:
fuente
sqlite3 example.db 'SELECT * FROM some_table;'
, en lugar desqlite3
lee comandos para ejecutar no solo desdestdin
, sino también desde el último argumento.Para aquellos que usan PowerShell
fuente
Si está usando la CMD de Windows, puede usar este comando para crear una base de datos usando sqlite3
Si no tiene una base de datos con ese nombre sqlite3 creará una, y si ya tiene una, la ejecutará de todos modos, pero con el error "TABLENAME ya existe", creo que también puede usar este comando para cambiar una ya existente base de datos (pero no estoy seguro)
fuente