为什么MySQL将acuñar注册为acunar的重复条目?
我的 MySQL 数据库中有一个动词表,其中包含以下列:
id smallint UN AI PK
title varchar(25)
我有一个脚本试图为动词“acuñar”插入一个新条目。在表中,已经有一个类似拼写的动词“acunar”的条目。
尽管我的 MySQL 数据库成功存储了 UTF8 字符,但当我运行以下 Python 脚本时:
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)
我收到以下错误:
mysql.connector.errors.IntegrityError: 1062 (23000): Duplicate entry 'acuñar' for key 'verb.title'
是的,我确定表中已经没有“acuñar”条目。
是的,我的模式已编码。
CREATE SCHEMA `polly_es` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
回答
因为您的整理使用utf8mb4_0900_ai_ci了 AI 代表的地方
AI 指的是口音不敏感。即在排序或比较时,e、è、é、ê 和ë 没有区别。
所以你可以试试 utf8mb4_0900_as_ci