Je lance sqlite3 version 3.7.7, unix 11.4.2 en utilisant cette commande:
sqlite3 auction.db
où Auction.db n'a pas déjà été créé.
sqlite> auction.db < create.sql;
me donne cette erreur: near "auction": syntax error
Comment puis-je exécuter le script?
.read
commande directement à partir de lasqlite3
commande:sqlite3 autction.db '.read create.sql'
.Vous voulez nourrir
create.sql
danssqlite3
de la coquille, et non à l' intérieur SQLite lui - même:La version SQLite de SQL ne comprend pas les
<
fichiers, votre shell le comprend.la source
<
comme une redirection d'entrée. (Par exemple, PowerShell.)<
quittera immédiatement l'invite SQLite et renverra le code d'erreur au shell..read file.sql
quittera l'invite et-init file.sql
retournera toujours 0, c'est donc<
le meilleur pour les scripts. En outre, il est multi-plateforme contrairement à.read
ce qui ne prend pas en charge les chemins Windows.Afin d'exécuter des requêtes simples et de revenir à mon script shell, je pense que cela fonctionne bien:
la source
sqlite3 example.db 'SELECT * FROM some_table;'
, plutôt que d'sqlite3
lit les commandes à exécuter non seulement àstdin
partir du dernier argument, mais également à partir du dernier argument.Pour ceux qui utilisent PowerShell
la source
Si vous utilisez Windows CMD, vous pouvez utiliser cette commande pour créer une base de données à l'aide de sqlite3
Si vous n'avez pas de base de données avec ce nom, sqlite3 en créera une, et si vous en avez déjà une, elle l'exécutera quand même mais avec l'erreur "TABLENAME déjà existe", je pense que vous pouvez également utiliser cette commande pour modifier un déjà existant base de données (mais je ne suis pas sûr)
la source