用于文本数据的MySQL区分大小写的外键

Ash*_*til 3 mysql foreign-keys case-sensitive

我的英语中的ISO 639-2语言代码(eng,fre,hin等)是我主表中的主键.此列是其他表中的外键.现在我的问题是即使我的主人只有小写值,由于人为错误,在混合情况下在语言ID的其他表中添加了一些值.即使有外键,也没有阻止它发生.
现在这是我第一次在MySQL工作,之前我曾在Oracle工作过,它将区分大小写应用于密钥.在MySQL中应该怎么做才能拥有相同的功能?那列的类型应该是什么?
现在是varchar(3).我应该将其转换为其他内容吗?我不会like在任何查询中使用任何条件,仅=in.

Nak*_*lda 5

这是因为collumn的排序规则不区分大小写 - 类似于latin1_swedish_ci将其更改为区分大小写的排序规则 - latin1_swedish_cs

ALTER TABLE t1 MODIFY col1 VARCHAR(3)CHARACTER SET latin1 COLLATE latin1_swedish_cs;

链接文字