我可以在SQLite命令行上运行脚本吗?

Hug*_*ugo 5 sqlite

我可以运行带有SQL语句的脚本吗?SQLite命令?

thk*_*ala 10

将SQL语句与SQLite混合.commands可能有点棘手:

$ sqlite3 test.db 'create table X(x integer); .dump'
Error: near ".": syntax error
Run Code Online (Sandbox Code Playgroud)

解决这个问题的最简单和最通用的方法可能是将所有命令提供给SQLite3命令行shell的标准输入,用新行分隔,就像键入它们一样:

$ sqlite3 test.db <<EOF
> CREATE TABLE TEST(X INTEGER);
> .dump
> EOF
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE TEST(X INTEGER);
COMMIT;
Run Code Online (Sandbox Code Playgroud)

由于此处所有shell中都没有文档,因此您可以使用中间文件来绕过此限制:

$ cat test.sql
CREATE TABLE TEST(X INTEGER);
.dump
$ sqlite3 test.db <test.sql
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE TEST(X INTEGER);
COMMIT;
Run Code Online (Sandbox Code Playgroud)