我的MySQL数据库中有一个谓词表,其中有以下列:
id smallint UN AI PK
title varchar(25)我有一个脚本,试图为动词“acu ar”插入一个新条目。在表中,已经有一个类似拼写的动词'acunar‘的条目。
尽管我的 DB成功地存储了UTF8字符,但当我运行以下UTF8脚本时,它还是成功地存储了UTF8字符:
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;发布于 2020-12-14 10:54:49
因为您的排序规则使用的是utf8mb4_0900_ai_ci,其中AI代表
AI指的是口音不敏感。也就是说,在排序或比较时,e、è、é、êand (e、è、é、êand)之间没有差别。
所以你可以试试utf8mb4_0900_as_ci
https://stackoverflow.com/questions/65287682
复制相似问题