我有database1一个用表t1和database2一个表命名的SQLite数据库t2.我想导入表t2从database2成database1.我应该使用什么命令?
CL.*_*CL. 33
database2使用sqlite3命令行工具打开,并使用该命令读取表定义.schema t2.(或者,使用任何其他允许读取表定义的工具.)
然后打开database1,使用以下命令附加其他数据库:
ATTACH 'database2file' AS db2;
Run Code Online (Sandbox Code Playgroud)
然后创建表t2,并复制数据:
INSERT INTO t2 SELECT * FROM db2.t2;
Run Code Online (Sandbox Code Playgroud)
小智 12
Shell命令:
sqlite3 database1
Run Code Online (Sandbox Code Playgroud)
在SQLite shell中:
sqlite> ATTACH 'database2' AS db2;
sqlite> CREATE TABLE t1 AS SELECT * FROM db2.t2;
Run Code Online (Sandbox Code Playgroud)
您可以使用sqlite3 .dump命令将转储输出传递到另一个数据库。它使用带有表名的可选参数。
db1=~/mydb1.sqlite
db2=~/mydb2.sqlite
t=t2
sqlite3 "$db2" ".dump $t" | sqlite3 "$db1"
Run Code Online (Sandbox Code Playgroud)
如果两个数据库中都没有公用表,则可以省略表名并复制所有表。
如果表很大,这可能会很慢,因为它将执行INSERT。如果它们很大,并且确实太慢,也许.import会更快。您可以尝试类似
sqlite3 "$db2" ".schema $t" | sqlite3 "$db1"
sqlite3 "$db2" "SELECT * FROM $t" | sqlite3 "$db1" ".import /dev/stdin $t"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20818 次 |
| 最近记录: |