Aqlier2/ 1月 15, 2021/ tech

sqlite3でDBで作成したテーブルで、データをコピー(複製)をとる必要があり、対処方法をまとめました。

同一DB内での操作、別DBのテーブルをコピーするときの対処方法になります。


同一DB内で、AテーブルからBテーブルにコピー(データレイアウトは同じ)したいとき
1.複製先テーブルを作成します。
DB Browser(sqlite3用DBツール)で操作。

参照元のテーブル情報より、create tableのSQL文をコピー、テーブル名を変更して実行します。

2.Aテーブルのデータを抽出して、取り込みます。

insert into btable select * from atable

2つのDBで、AテーブルからBテーブルにコピー(データレイアウトは同じ)したいとき

1.Aテーブル(参照元)のデータをCSVファイルに出力します。

Macのターミナルで操作。

% cd /Users/aaaa/Desktop/data/
% sqlite3 xxxx.db
sqlite> .mode csv
sqlite> .once /Users/aaaa/Desktop/data/btable.csv
sqlite> select * from atable;

btable.csvにCSVデータが出力されます。

2.複製先テーブルを作成します。
上記記載を参照。

3.CSVデータをimportします。
参考記事:sqlite3のDBにCSVファイルをインポートする方法

sqlite3のDBにCSVファイルをインポートする方法

Leave a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*
*