読者です 読者をやめる 読者になる 読者になる

tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

【sqlite】sqliteで`expected 3 columns but found 1 - filling the rest with NULL`なエラーがでる

sqlite mac linux

はじめに

sqliteでimportしようとするとこんなエラーがでることがあります。

expected 3 columns but found 1 - filling the rest with NULL

その場合の対処方&スニペット記事用

エラーしてみる

sqlite> .import /path/to/csv sample_table
/Users/hoge/tmp/sample_table.csv:1: expected 3 columns but found 1 - filling the rest with NULL
原因

これはセパレータ(区切り文字)が現認なことが多いです。
みてみます。

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

デフォルトのセパレータが|なんですねw

対応

対応はセパレータを変えればいいのでコマンドで,(カンマ)に変えます

sqlite> .separator ','

.sqparatorコマンドで区切り文字を変えるとselect時の表示の区切り文字なんかも変わるので注意しましょう。

確認

※ 何もいわれなければimport成功
sqlite> .import /path/to/csv sample_table

おわり

ということで、簡単なエラーの開所方でしたがまた一つ勉強になりました。