SQLite3のクエリ結果をSQLで保存(エクスポート)する方法
タグ: sqlite / 初版公開: 2014-05-19

SQLite3を使っていて、クエリの結果をSQLとして保存する方法のメモ。

sqlite3を起動して以下のようにする。 TABLE_NAMEは出力したいテーブル名に置き換える。 これでTABLE_NAME.sqlというinsert文が大量に書かれたSQLファイルができる。

.mode insert TABLE_NAME
.out TABLE_NAME.sql
SELECT * FROM TABLE_NAME

ちなみにこのデータをDBに書き戻す(インポートする)には以下のようにする。 DBはデータベースファイルに読み替える。

sqlite3 DB < TABLE_NAME.sql

大量のレコードをinsertする処理は遅いことに注意。 その場合はsqlファイルを編集して、トランザクションを使うようにすると良い。 以下のように、先頭にBEGIN;、末尾にEND;を書くだけで良い。

BEGIN;
insert XXX ...
END;