我使用以下命令启动 sqlite3 版本 3.7.7、unix 11.4.2:
sqlite3 auction.db
尚未创建auction.db 的地方。
sqlite> auction.db < create.sql;
给我这个错误:near "auction": syntax error
如何运行脚本?
我使用以下命令启动 sqlite3 版本 3.7.7、unix 11.4.2:
sqlite3 auction.db
尚未创建auction.db 的地方。
sqlite> auction.db < create.sql;
给我这个错误:near "auction": syntax error
如何运行脚本?
您想从 shell 中create.sql
输入sqlite3
,而不是从 SQLite 内部输入:
$ sqlite3 auction.db < create.sql
SQLite 的 SQL 版本不理解<
文件,你的 shell 可以。
有很多方法可以做到这一点,一种方法是:
sqlite3 auction.db
其次是:
sqlite> .read create.sql
一般来说,SQLite 项目有非常棒的文档!我知道我们经常在文档之前联系 Google,但在 SQLite 的案例中,文档确实是最好的技术写作。它干净、清晰、简洁。
为了执行简单的查询并返回我的 shell 脚本,我认为这很好用:
$ sqlite3 example.db 'SELECT * FROM some_table;'
对于那些使用 PowerShell
PS C:\> Get-Content create.sql -Raw | sqlite3 auction.db
如果您使用的是 windows CMD,您可以使用此命令使用 sqlite3 创建数据库
C:\sqlite3.exe DBNAME.db ".read DBSCRIPT.sql"
如果您没有具有该名称的数据库 sqlite3 将创建一个,并且如果您已经有一个,它仍然会运行它但出现“TABLENAME 已存在”错误,我认为您也可以使用此命令来更改已经存在的数据库(但我不确定)
sqlite3 -init create.sql auction.db .quit
当我输入命令man sqlite3
时,我在“选项”下看到:
-init file从file
读取和执行命令,其中可以包含 SQL 语句和元命令的混合。
在“SQLITE META-COMMANDS”下:
.quit 退出这个程序
另请参阅:SQLite 的命令行 Shell:3. sqlite3 的特殊命令(点命令)。
另外,当我输入命令时sqlite3 -help
,我会在“选项”下看到:
-init FILENAME 读取/处理命名文件