sqlite3 でデータエクスポート&インポート

sqlite3 で データのエクスポート&インポートしようとしたが、意外と情報が少なくて難渋した。そこでここにメモする。

情報ソース

SQLiteのドットコマンド
.help や .schema 等 "." ではじまるコマンドのリファレンス。

エクスポート

たとえばタブ区切りでテーブル foobar の内容をファイルに保存したい場合は次のようにする。

% sqlite3 mydb.sqlite3
SQLite version 3.3.8
Enter ".help" for instructions
sqlite> .mode tabs foobar     # 出力をタブ区切り表示に変更
sqlite> .output foobar.txt    # 出力先を "foobar.txt" ファイルに変更
sqlite> select * from foobar; # データ出力

のように行う。

インポート

タブ区切りファイル foobar.txt からテーブル foobar にデータをインポートする。

sqlite> .mode tabs foobar          # 出力をタブ区切り表示に変更すると、インポート時のファイルの解釈方法も変わるらしい。
sqlite> .import foobar.txt foobar  # インポート。ファイル名・テーブル名の順に引数に指定。