我使用以下命令启动sqlite3版本3.7.7,Unix 11.4.2:
sqlite3 auction.db
尚未创建auction.db的位置。
sqlite> auction.db < create.sql;
给我这个错误: near "auction": syntax error
如何运行脚本?
Answers:
您想要从外壳而不是从SQLite本身内部馈create.sql入sqlite3:
$ sqlite3 auction.db < create.sql
SQLite的SQL版本无法识别<文件,而您的Shell可以。
<为输入重定向。(例如,PowerShell。)
<将立即退出SQLite提示,并将错误代码返回到Shell。.read file.sql将保留提示,-init file.sql并将始终返回0,因此<最好是编写脚本。此外,它是跨平台的,与.read不支持Windows路径的不同。
为了执行简单的查询并返回我的shell脚本,我认为这很好用:
$ sqlite3 example.db 'SELECT * FROM some_table;'
sqlite3 example.db 'SELECT * FROM some_table;',而不是
sqlite3读取命令不仅要从执行stdin,还要从最后一个参数执行。
.read直接从sqlite3命令运行命令:sqlite3 autction.db '.read create.sql'。