gpt4 book ai didi

MySql - 如何使用 utf8_bin 排序规则禁止唯一区别是大小写的重复条目?

转载 作者:行者123 更新时间:2023-11-29 16:33:59 24 4
gpt4 key购买 nike

我有一个表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

你知道如何禁止这种情况吗?

最佳答案

这是完全正常的。 utf8_bin 根据其 unicode 比较值(查看 code points 以供引用)

我想要一个包含区分大小写数据的表,您可以选择 utf8_unicode_cs (区分大小写)

请注意,utf8_bin 和 utf8_default_ci 不区分大小写。

仅供引用:所有编码中的 cs 表示区分大小写,ci 表示不区分大小写。

关于MySql - 如何使用 utf8_bin 排序规则禁止唯一区别是大小写的重复条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53728845/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com