mysql:12837
From: <a2cf@xxxxxxxxxx>
Date: Mon, 06 Mar 2006 21:14:29 +0900
Subject: [mysql 12837] mysqldumpの--hex-blobオプションにより「0x」
atsushiです。
いつも参考にさせていただいております。
mysqldumpの--hex-blobオプションについて不思議な動作がありました。
--hex-blobオプションを使用したときに--extended-insertオプションと併用すれば問題ないのですが、--hex-blobオプションだけを使用した場合、列の値が空('')の時、ダンプファイルが「0x」となってしまいます。
「値が空('')の時の--hex-blobと--extended-insertの関係」
●共にオプションなし → OK(hexにはならない)
●--hex-blobのみ → 「0x」となる。
● --hex-blobと--extended-insert → OK
● --extended-insertのみ → OK(hexにはならない)
これは自分の使用方法に問題があるのでしょうか?
詳細のテスト結果を以下に示します。
なお、InnoDBでなくMyISAMでもNGでした。cp932をlatin1にしても同様でした。
何とぞよろしくお願いします。
######## 詳 細 ########
環境: MySQL4.1.15 Linux (Standard, x86) 版
create database testdb;
use testdb;
create table t1(c1 varchar(50)) engine = innodb default
character set = cp932;
insert into t1 values('abc');
insert into t1 values('');
insert into t1 values(NULL);
insert into t1 values('def');
grant SELECT,LOCK TABLES
on *.* to bkupuser@localhost
identified by 'pass';
●mysqldump --skip-opt -h localhost -u bkupuser --password=pass testdb t1 > dump_nohex_noextins.sql
→OK 元々は問題ない。
INSERT INTO `t1` VALUES ('abc');
INSERT INTO `t1` VALUES ('');
INSERT INTO `t1` VALUES (NULL);
INSERT INTO `t1` VALUES ('def');
●mysqldump --skip-opt --hex-blob -h localhost -u bkupuser --password=pass testdb t1 > dump_withhex_noextins.sql
→NG --hex-blobだけでは0xとなる。
INSERT INTO `t1` VALUES (0x616263);
INSERT INTO `t1` VALUES (0x);
INSERT INTO `t1` VALUES (NULL);
INSERT INTO `t1` VALUES (0x646566);
●mysqldump --skip-opt --hex-blob --extended-insert -h localhost -u bkupuser --password=pass testdb t1 > dump_withhex_withextins.sql
→OK --extended-insertがあれば問題ない。
INSERT INTO `t1` VALUES (0x616263),(''),(NULL),(0x646566);
●mysqldump --skip-opt --extended-insert -h localhost -u bkupuser --password=pass testdb t1 > dump_nohex_withextins.sql
→OK --extended-insertだけでも問題ない。
INSERT INTO `t1` VALUES ('abc'),(''),(NULL),('def');
-> 12837 2006-03-06 21:14 [<a2cf@xxxxxxxxxx> ] mysqldumpの--hex-blobオプションにより「0x」 12838 2006-03-06 21:41 ┗[SAKAI Kei <sak@xxxxx] 12839 2006-03-07 08:32 ┗[<a2cf@xxxxxxxxxx> ]