【问题标题】:mySQL: update Record / duplicate entry / collate / binarymySQL:更新记录/重复条目/整理/二进制
【发布时间】:2022-01-18 15:41:37
【问题描述】:

我有一个名为 url (varchar 255) 的字段,它被设置为 uniqueutf8mb4_general_ci 作为排序规则。

尝试更新记录以设置此 url 时:https://en.wikipedia.org/wiki/Léa_(film)

我收到重复错误,因为存在另一条记录,其 URL 为 https://en.wikipedia.org/wiki/Lea_(film) (没有重音)。

我尝试添加COLLATE utf8_bin,但出现错误:

COLLATION 'utf8_bin' is not valid for CHARACTER SET 'latin1'

我也尝试使用 (CAST 'https://en.wikipedia.org/wiki/Léa_(film)' AS BINARY) 转换 URL,但也没有帮助。

有没有办法或唯一的解决方案将字段排序规则更改为utf8_bin

谢谢

【问题讨论】:

  • 为您的表和会话字符集/排序规则设置显示完整的 CREATE TABLE。 我尝试添加 COLLATE utf8_bin,但出现错误显示您在哪里以及如何尝试这样做。

标签: mysql binary unique-index collate


【解决方案1】:

尝试更新记录以设置此 url 时:https://en.wikipedia.org/wiki/Léa_(film)

我收到重复错误,因为存在另一条记录,其 URL 为 https://en.wikipedia.org/wiki/Lea_(film)(不带重音符号)。

如果不能将此类值视为重复值,则必须执行 ALTER TABLE for 以更改列的设置并根据排序规则进行设置(例如,utf8mb4_0900_as_ciutf8mb4_bin - 请参阅 SHOW COLLATION LIKE 'utf8mb4_%'; 并选择正确的排序规则)。

【讨论】:

    猜你喜欢
    • 2013-07-18
    • 1970-01-01
    • 2012-02-12
    • 2021-06-22
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多