LoginSignup
47
40

More than 5 years have passed since last update.

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

Posted at

他の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;

47
40
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
47
40