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)