database1
テーブルt1
とテーブルで名前が付けられたSQLiteデータベースがdatabase2
ありますt2
。t2
からテーブルをdatabase2
インポートしたいdatabase1
。どのコマンドを使用する必要がありますか?
質問する
24699 次
3 に答える
38
コマンドラインツールで開き、コマンドでテーブルdatabase2
定義を読み取ります。(または、テーブル定義の読み取りを可能にする他のツールを使用します。)sqlite3
.schema t2
次に、を開きdatabase1
、次のコマンドで他のデータベースを接続します。
ATTACH 'database2file' AS db2;
次に、テーブルを作成し、次のt2
コマンドでデータをコピーします。
INSERT INTO t2 SELECT * FROM db2.t2;
于 2012-11-03T10:39:59.947 に答える
15
シェルコマンド:
sqlite3 database1
SQLiteシェルの場合:
sqlite> ATTACH 'database2' AS db2;
sqlite> CREATE TABLE t1 AS SELECT * FROM db2.t2;
于 2014-06-09T19:41:09.023 に答える
6
sqlite3.dump
コマンドを使用して、ダンプ出力を他のデータベースにパイプすることができます。テーブル名とともにオプションの引数を取ります。
db1=~/mydb1.sqlite
db2=~/mydb2.sqlite
t=t2
sqlite3 "$db2" ".dump $t" | sqlite3 "$db1"
両方のデータベースに共通のテーブルがない場合は、テーブル名を省略してすべてのテーブルをコピーできます。
テーブルが大きい場合、INSERTを実行するため、これは遅くなる可能性があります。それらが巨大で、それが本当に遅すぎる場合、おそらく.import
より速くなるでしょう。あなたは次のようなことを試すことができます
sqlite3 "$db2" ".schema $t" | sqlite3 "$db1"
sqlite3 "$db2" "SELECT * FROM $t" | sqlite3 "$db1" ".import /dev/stdin $t"
于 2012-11-03T10:37:48.347 に答える