MySQLはソートや比較のときに、英字の大文字小文字を区別しない

MySQLはデフォルトでは大文字区別を区別しない

参考:http://lgrobscrt.exblog.jp/361128/
そうだったのか。。めちゃめちゃはまった↓↓
PKに使うと、主キーの一意性違反でInsertすらできません。

対処法①

CREATE TABLEのときに大文字小文字を区別したいカラムに、BINARY属性を付けるだけのようです。

対処前

CREATE TABLE SampleTable (
	ID CHAR(5) NOT NULL PRIMARY KEY
);

対処後

CREATE TABLE SampleTable (
	ID CHAR(5) BINARY NOT NULL PRIMARY KEY
);

対処法②

ALTERの権限があるならば、一度PKを解除してBINARY属性を付与してPKを再定義してあげれば良い。

ALTER TABLE SampleTable DROP PRIMARY KEY;
ALTER TABLE SampleTable MODIFY ID CHAR(5) BINARY PRIMARY KEY;

ダンプすると・・

↓のようになるようだ。

`ID` char(5) character set latin1 collate latin1_bin NOT NULL default ''