我有一张table user
和整理- utf8_bin
:
CREATE TABLE user (
user_id bigint(20) NOT NULL AUTO_INCREMENT,
user_name varchar(192) COLLATE utf8_bin NOT NULL,
admin_id int(11) NOT NULL,
PRIMARY KEY (user_id),
UNIQUE KEY admin_id_user_name (admin_id,user_name),
CONSTRAINT admin_fk_1 FOREIGN KEY (admin_id) REFERENCES admin (admin_id)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
我不允许在唯一不同的地方插入相同的条目。在我看来 utf8_bin
整理应该对我的这种方法有所帮助。但我不工作。当我尝试插入新条目时,与前一条不同的是,条目被插入。
user_id | user_name | admin_id
_______________________________
1 | name | 1
_______________________________
2 | Name | 1
你知道怎么禁止这个吗?
1条答案
按热度按时间z4bn682m1#
这很正常。utf8\u bin基于其unicode比较值(检查代码点以供参考)
如果您想要一个包含区分大小写的数据的表,可以使用utf8\u unicode\u cs(区分大小写)
请注意,utf8\u bin和utf8\u defaut\u ci不区分大小写。
仅供参考:所有编码中的cs表示区分大小写,ci表示不区分大小写。