CSV⇔phpMyAdmin データの移植法
※とてもとても、スマートとはいえない方法です。
こんな馬鹿げたやり方、僕だけでしょうね…。
CSVから直接phpMyAdminへ移植することはできなかったので、
間にTkSQLiteを入れて、そこでCSVからSQLへ変換するようにしました。
【使用したアプリのバージョン情報】
- phpMyAdmin 3.1.3-rc1 (使用文字コード:UTF-8)
- TkSQLite 0.5.7
- Microsoft Excel2000
【phpMyAdminからCSVへ】
(phpMyAdmin)
(テーブルを選ぶ)→『エクスポート』→『MS Excel 用の CSV』を選ぶ。
コピーして、テキストエディタに貼り付ける。
- テキストエディタで、ファイル名を『〜.csv』、Shift-jis形式で保存する。
これで、Excelで編集することができます。
※注意
セル内のタブはExcelで開くと表示されませんが、
テキストエディタで開くと表示され、きちんと移植されている
ことがわかります。
【CSVからTkSQLiteへ】
(TkSQLite)
『ファイル』→『読み込み』→『テキストファイル』
※注意
セル内にシングルクォーテーション(')がある場合に、
DBファイルを閉じたりほかのテーブルに移動したりすると、
(')が('')のように2倍に増えてしまいます。
('')の場合は('''')です。
つまり、すぐに次の『書き出し』を行う必要があります。
おそらく、これはTkSQLiteのバグだと思います。
【TkSQLiteからphpMyAdminへ】
(TkSQLite)
『ファイル』→『書き出し』→『SQL』
書き出されたファイルそのままではphpMyAdminでインポートできないので、
テキストファイルで修正します。
【修正前】
【修正後】
BEGIN TRANSACTION;
CREATE TABLE 'テーブル名' (
id integer PRIMARY KEY,
name text COLLATE NOCASE
);
INSERT INTO "テーブル名" VALUES(...);
COMMIT;
つまり、テーブル構造定義と、テーブル名を囲むダブルクォーテーションを
INSERT INTO テーブル名 VALUES(...);
削除します。
MySQL側で受け入れるテーブルは、あらかじめ設定しておきます。
(phpMyAdmin)
(テーブルを選ぶ)→『インポート』→『SQL』を選ぶ
以上です。
…全然スマートじゃない…orz
でも、データの編集をするならphpMyAdminよりもExcelのほうがすばやく
軽快にできますし…。
なんとかならないものか…。