【问题标题】:How can I find the row error for a table without an auto-increment?如何在没有自动增量的情况下找到表的行错误?
【发布时间】:2013-11-21 14:34:19
【问题描述】:

我正在尝试将索引列(非唯一)varchar(255) 转换为使用 utf8mb4_general_ci 排序规则。但我一直遇到最大键错误。

所以我尝试将我的 varchar 长度限制为较小的数字并收到此错误:

Data too long for column at 'table_name' at row 122

但是我的表没有自动递增的 id,所以我一直在弄清楚第 122 行在哪里。

我的直觉是,我可以截断一些长记录以适应 utf8mb4 的 767 密钥长度。但我需要先找到长字符串。

【问题讨论】:

    标签: mysql indexing collation alter-table


    【解决方案1】:

    要查找最长的字符串('foo' 是您的列名太长):

    SELECT *, char_length(foo)
    FROM table_name
    ORDER BY char_length(foo) DESC
    LIMIT 25
    

    【讨论】:

      猜你喜欢
      • 2016-12-12
      • 1970-01-01
      • 2012-04-12
      • 1970-01-01
      • 1970-01-01
      • 2020-05-28
      • 2016-04-16
      • 1970-01-01
      • 2023-02-24
      相关资源
      最近更新 更多