运行命令行sqlite3查询并退出

far*_*mir 44 sqlite shell command-line

我们可以使用-cmd选项sqlite3来运行查询,但随后sqlite3打开数据库并在那里等待交互式输入.我们如何从命令行运行查询sqlite3并退出?

谢谢,

gbr*_*ner 65

只需在数据库文件参数后面的引号中包含该命令即可.

例如,以下创建一个名为的表abc:

sqlite3 test.db 'create table abc (col0 int)'
Run Code Online (Sandbox Code Playgroud)


小智 20

您可以使用".exit"命令(1)正常退出

sqlite3 test.db "select * from abc;" ".exit"
Run Code Online (Sandbox Code Playgroud)

文档:https://sqlite.org/cli.html

这应该是一个评论,但我没有50个评论所需的声誉.

  • +1:这对于启用标题和设置模式很有用: `sqlite3 db.sqlite3 ".headers on" ".mode column" "select * from auth_user;" | 少-S-#10`! (3认同)
  • 在这里使用 `.exit` 有什么好处?从 3.40.1 开始测试,`sqlite3 test.db "select * from abc;"` 工作得很好,然后正常退出。 (3认同)

f1l*_*t3r 6

-cmd如果您在从命令行运行 SQLite\xc2\xa03 时陷入绝对“必须”使用该标志的情况,则可以使用连续的空白命令退出。

\n

例如:

\n
sqlite3 test.db "select * from urls;" "" > test.txt\n
Run Code Online (Sandbox Code Playgroud)\n

在此示例中,""导致 SQLite\xc2\xa03 进程退出。(至少在 OS\xc2\xa0X 上对我来说是这样。)

\n


Саш*_*кин 5

多行查询也可能很有用:

sqlite3 ./database.db <<EOF
    SELECT *
    FROM something
    LIMIT 5
EOF
Run Code Online (Sandbox Code Playgroud)