16進ダンプでも心配なMySQL

さすがに16進なら大丈夫だろうと思っていたら、他のサーバへデータを移動する為にインポートしようとしたら

ERROR 1054 at line 98603: Unknown column ‘0x’ in ‘field list’

このようにエラーを吐いて処理が止まった。
結局どんな吐き出し方をしたのだろうと確認すると、元のDBでは空文字(NULLでは無い)状態になっている文字列フィールドでダンプ時に0xのみ出力されていました。

NULLであれば
VALUES(NULL,NULL,NULL);
という感じになるところが空文字だと
VALUES(0x,0x,0x);
となっていました。終端文字を吐き出さない仕様だからこうなるのでしょうが、同じバージョンのMySQLならインポートも対応しろよって思いました。

結局空文字はNULLでも良かったのでテキストエディタで置換してインポート終了しました。どうしても空文字で入れたいのであれば0xを”に置換してもいいですね。

使用したバージョン:4.0.26