2013年11月22日金曜日

SQLite データをインポートする

C#でSQLiteを使っていて、既存のデータベースと同じデータを扱う必要が出た。
そうなると当然その既存のデータベースからインポートしてしまいたい。
結論から言うと、C#環境下ではできなかった。
もしかしたらできるのかもしれないけど、なんちゃってプログラマにはわからなかった。
SQLiteをダウンロードしてそっちでデータベースを作ってからC#側で使うしかないのかな?

SQLiteをダウンロード



サイトからファイルをダウンロード。
zipファイルを任意のフォルダに解凍すると、sqlite3.exeというファイルがぽつねんとできる。
あとはコマンドプロンプトから叩いてやるだけ。

テーブルにデータをインポートする


参考サイト

今回インポートするのはcsv。
データがダブルクォーテーションで囲まれていると失敗するらしい。
それから、1行目のデータがカラム名じゃなくても失敗する。
全部文字列だったら失敗しないかもしれない。
コマンドプロンプトでexeを展開したフォルダに移動。コマンドを叩いてやろう。

/*---------------------------------------------------------------------------*/
$ sqlite3 -separator , hoge.db ".import hoge.csv hoge"
/*---------------------------------------------------------------------------*/

-separatorオプションでセパレータ(区切り文字)を指定できるので、
カンマ区切りじゃなくても問題はなさそう。

/*---------------------------------------------------------------------------*/
$ sqlite3 hoge.ds
sqlite> .import hoge.csv hoge
/*---------------------------------------------------------------------------*/

この方法でもできるそうだけど、separatorの指定はどうやるんだろうか?
普通にでいいのかな?



/** 同日追記 **/

参考サイト
データをファイルからインポート

区切り文字は「.separator」で変更可能。
それから、カラム名もファイルからインポートするとデータ型が全部TEXTになってしまうようだ。
テーブルそのものは事前に作っておいて、データだけインポートしろってことかな。

0 件のコメント:

コメントを投稿