sqlite3でcsvファイルからインポート

  • 24
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

他のDBからcsvファイルとして抽出したデータをローカルのDBにインポートしてみる。

csvファイルは事前に整形しておく。

現在の設定を確認

.showで区切り文字を確認する。

sqlite> .show
     echo: off
      eqp: off
  explain: off
  headers: off
     mode: list
nullvalue: ""
   output: stdout
separator: "|"
    stats: off
    width:
sqlite>

separatorが現在の区切り文字。上記では|となっている。

区切り文字の変更

csvは,区切りなので、.separator ,で区切り文字を変更する。

sqlite> .separator ,
sqlite> .show
     echo: off
      eqp: off
  explain: off
  headers: off
     mode: list
nullvalue: ""
   output: stdout
separator: ","
    stats: off
    width:
sqlite>

separatorが|から,に変更された。

csvファイルのimport

インポートは.import csvファイ名 テーブル名でインポート

sqlite> .import sample.csv TEST_TABLE

おまけ

何度もimportとdrop/createを繰り返して試していたら、ファイルサイズが大きくなっていた。
どうやらdoropやdeleteでテーブルやレコードを削除しても、ファイルサイズすぐに減らず、コマンドで空き領域を開放する必要がある。
空き領域を開放するには、vacuum;を実行
sqlite> vacuum;