首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么MySQL将acu ar注册为acunar的重复条目?

为什么MySQL将acu ar注册为acunar的重复条目?
EN

Stack Overflow用户
提问于 2020-12-14 10:52:33
回答 1查看 88关注 0票数 4

我的MySQL数据库中有一个谓词表,其中有以下列:

代码语言:javascript
复制
id smallint          UN AI PK
title varchar(25)

我有一个脚本,试图为动词“acu ar”插入一个新条目。在表中,已经有一个类似拼写的动词'acunar‘的条目。

尽管我的 DB成功地存储了UTF8字符,但当我运行以下UTF8脚本时,它还是成功地存储了UTF8字符:

代码语言:javascript
复制
import mysql.connector
import os
import io

db = mysql.connector.connect(
  host="localhost",
  user="root",
  password="12345678",
  database="polly_es",
  use_unicode=True,
  charset="utf8",
)

cursor = db.cursor()

sql = "INSERT INTO verb (title) VALUES ('acuñar')"

cursor.execute(sql)

我得到以下错误:

代码语言:javascript
复制
mysql.connector.errors.IntegrityError: 1062 (23000): Duplicate entry 'acuñar' for key 'verb.title'

是的,我确信已经没有“acu ar”条目了。

是的,我的模式被编码了。

代码语言:javascript
复制
CREATE SCHEMA `polly_es` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-14 10:54:49

因为您的排序规则使用的是utf8mb4_0900_ai_ci,其中AI代表

AI指的是口音不敏感。也就是说,在排序或比较时,e、è、é、êand (e、è、é、êand)之间没有差别。

所以你可以试试utf8mb4_0900_as_ci

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65287682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档