ユーザーアカウントのテーブルのログインIDで
login_name VARCHAR(256) NOT NULL UNIQUE
なんて指定でユニークキーを貼ったのはいいが、Case SensitiveなIDになってしまい、気が付いたら大文字小文字を使い分けられてgdgdになる
# だけど「はてな」はMySQLじゃなかったの?って知らないけど
# どちらにせよはてながPostgreSQLだとは思ってません。もしかしてDBM?;)
解決策は関数インデックスを使って
CREATE UNIQUE INDEX indexname ON usertable (lower(login_name));
とすると、「Ryo」があるとき「ryo」はINSERTできなくなります。
けど、これじゃ「Ryo」がINSERTできちゃうんで、CHECK句を使って
login_name VARCHAR(256) NOT NULL UNIQUE CHECK (login_name = lower(login_name))
ってのもいいかも。
-
ページ
-
検索
最近のコメント
最近のエントリ
-
カテゴリー
- del.icio.us (200)
- IT関連 (194)
- ニュース・時事 (19)
- レクレーション (61)
- 雑記 (127)
-
アーカイブ
- 2009 年 1 月 (5)
- 2008 年 12 月 (23)
- 2008 年 11 月 (24)
- more...