我刚收到一个SQL插入脚本,但它在重复的键条目上失败了:
我想插入:
1)蒙大拿
2)蒙大拿
我的桌子都是utf8_spanish2_ci,
任何人都可以解释为什么会这样吗?
答案 0 :(得分:1)
utf8_spanish2_ci
collation确实不仅不区分大小写,而且还有部分重音不敏感,因此 (作为Joni Salonen指出,这是不正确的!)但是ñ
= n
。á
= a
。
据我所知,除了 utf8_bin
之外,没有不的排序规则带有此“功能”。
你能做什么:
答案 1 :(得分:0)
这很可能是由于整理考虑Montaña和Montana相同。
(排序规则确定字符串比较的结果。)
答案 2 :(得分:0)
您确定此特定列具有排序utf8_spanish2_ci
吗?
根据这种排序规则,Montana和Montaña这两个词并不相同,因为您可以使用此SQL进行验证:
mysql> select 'Montana' = 'Montaña' collate utf8_spanish2_ci as eq;
+----+
| eq |
+----+
| 0 |
+----+
是否有可能以某种方式将排序规则更改为utf8_general_ci?在这个校对中,n和ñ是相等的。