CSV⇔phpMyAdmin データの移植法

とてもとても、スマートとはいえない方法です。
こんな馬鹿げたやり方、僕だけでしょうね…。


CSVから直接phpMyAdminへ移植することはできなかったので、
間にTkSQLiteを入れて、そこでCSVからSQLへ変換するようにしました。


【使用したアプリのバージョン情報】




phpMyAdminからCSVへ】

  1. (phpMyAdmin)
    (テーブルを選ぶ)→『エクスポート』→『MS Excel 用の CSV』を選ぶ。




  2. コピーして、テキストエディタに貼り付ける。



  3. テキストエディタで、ファイル名を『〜.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のほうがすばやく
軽快にできますし…。
なんとかならないものか…。