UNIQUEで失敗(mysql)

CREATE TABLE t(a INT NOT NULL, b INT, UNIQUE u(a,b)) 

みたいに、UNIQUE に NULL を許す型があると、ぜんぜん UNIQUE じゃなくなるってことに今日気付いた。

UNIQUE インデックスでは、インデックスのすべての値に重複がない状態でなければならない。ただし、例外として、そのインデックスのカラムの 1 つで NULL 値が格納可能な場合、複数の NULL 値を格納できる。 この例外は BDB 型のテーブルには適用されない。BDB 型のテーブルには単一の NULL のみ格納可能。

おーのー