我使用此命令启动sqlite3版本3.7.7,unix 11.4.2:
sqlite3 auction.db
尚未创建auction.db。
sqlite> auction.db < create.sql;
给了我这个错误:near "auction": syntax error
如何运行脚本?
答案 0 :(得分:109)
您希望将create.sql
从shell中提供到sqlite3
,而不是从SQLite内部提供:
$ sqlite3 auction.db < create.sql
SQLite的SQL版本不了解文件的<
,而shell则不行。
答案 1 :(得分:94)
有很多方法可以做到这一点,一种方法是:
sqlite3 auction.db
其次是:
sqlite> .read create.sql
一般来说,SQLite项目有非常出色的文档!我知道我们经常在文档之前联系谷歌,但在SQLite的情况下,文档确实是最好的技术写作。它干净,清晰,简洁。
答案 2 :(得分:17)
为了执行简单的查询并返回我的shell脚本,我认为这很有效:
$ sqlite3 example.db 'SELECT * FROM some_table;'
答案 3 :(得分:2)
如果您使用的是Windows CMD,则可以使用此命令使用sqlite3创建数据库
C:\sqlite3.exe DBNAME.db ".read DBSCRIPT.sql"
如果没有名称为sqlite3的数据库将创建一个,并且如果您已经拥有一个数据库,则它将以任何方式运行它,但出现“ TABLENAME has exist”错误,我想您也可以使用此命令来进行更改一个已经存在的数据库(但我不确定)
答案 4 :(得分:0)
对于使用PowerShell的用户
PS C:\> Get-Content create.sql -Raw | sqlite3 auction.db