質問: sqlite3にCSVからデータをインポートしたいです。 categoryというテーブルにcategoryというCSVのデータをインポートしたいです。 categoryというCSVのデータは、下記のとおりです。 "A",10000 "B",20000 ターミナル上で、下記のコマンドを実行しました。 .import ./tag_csv/category category しかし、下記のエラーが出ました。 ./tag_csv/category:1: unescaped " character ./tag_csv/category:2: unescaped " character ./tag_csv/category:2: unescaped " character ./tag_csv/category:1: unterminated "-quoted field ./tag_csv/category:1: expected 2 columns but found 1 - filling the rest with NULL ./tag_csv/category:1: INSERT failed: NOT NULL constraint failed: category.name なお、Djangoのアプリ作成時に自動で生成された元のsqlite3があったのですが、事情があり、そのsqlite3をいったん削除しなければならなくなり、その元のsqlite3からエクスポートしたデータが、このCSVです。 同じDjangoアプリから改めて自動で新たにsqlite3を生成したので、これにCSVからインポートしたいです。 同じアプリから生成されたsqlite3なので、データベースの構成には違いがないはずだと思います。 おそらく、1行目のデータに対し、1文のエラーしか出ていないので、 CSV自体をうまく読み取ってくれていないのだと思います。 そのため、importの仕方が悪いのか、CSVの形を変えなければならないのかと思います。 どうしたらよいかお分かりの方、ご教示いただけないでしょうか。 よろしくお願いします。
回答: セパレーターの設定が悪いのだと思います。 sqlite3は、デフォルトでカラムセパレーターは|になっていたと思います。この設定は「.show」コマンドを入力することで確認できます。 カンマをセパレーターにするには、「.separator ,」と入力してください。 その後、インポートを再度実行してみてください。