如何使MySql表数据区分大小写?

问题描述 投票:1回答:1

我想在区分大小写的MySql表的主键字段中输入数据。但是默认情况下,它不考虑表数据的区分大小写。

这是我的查询。

mysql> select id from product where id = 'a1';
+----+
| id |
+----+
| A1 |
+----+
1 row in set (0.00 sec)

mysql> insert into product values('a1', 'SomeName', 'SomeName', 200, 10, 10);
ERROR 1062 (23000): Duplicate entry 'a1' for key 'product.PRIMARY'

enter image description here

也我在创建表时尝试了Collat​​ion,但未按要求获取结果。谁能建议必须使用哪种排序规则或任何其他技术来使表的列域区分大小写。

mysql sql database primary-key collation
1个回答
0
投票
ALTER TABLE product
    MODIFY COLUMN id VARCHAR(...) COLLATION ..._bin NOT NOT NULL;

...是当前列的大小和字符集。

我唯一想到的区分大小写的东西是

  • base-64
  • Unix文件名

但是这些似乎不太可能是PK。您的用例是什么?最好不要区分大小写。

((注释链接到使用ALTER DATABASE的SQL Server建议;这不适用于MySQL,因为这只会更改随后创建的表的默认。]

© www.soinside.com 2019 - 2024. All rights reserved.