我想在区分大小写的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'
也我在创建表时尝试了Collation,但未按要求获取结果。谁能建议必须使用哪种排序规则或任何其他技术来使表的列域区分大小写。
ALTER TABLE product
MODIFY COLUMN id VARCHAR(...) COLLATION ..._bin NOT NOT NULL;
...
是当前列的大小和字符集。
我唯一想到的区分大小写的东西是
但是这些似乎不太可能是PK。您的用例是什么?最好不要区分大小写。
((注释链接到使用ALTER DATABASE
的SQL Server建议;这不适用于MySQL,因为这只会更改随后创建的表的默认。]