【问题标题】:How to ignore #1406 - Data too long for column?如何忽略 #1406 - 列的数据太长?
【发布时间】:2021-06-01 03:18:04
【问题描述】:

使用 Mariadb 10.3 我收到此错误,而我尝试修改字段中的一些字符串:

UPDATE article SET body = REPLACE(body, 'old string', 'shiny new string');

但是我得到了这个错误:

#1406 - Data too long for column 'body' at row 242

我想知道是否有办法在此错误出现时忽略它并要求 mysql 在其他行中继续进行替换。

我需要这个解决方案,因为我无法使VARCHAR 列更大或更改类型,并且我不想截断文本以便为shiny new string 腾出空间。

【问题讨论】:

    标签: mysql sql mariadb


    【解决方案1】:

    好的,我意识到我只需要在查询中添加IGNORE

    UPDATE IGNORE article SET body = REPLACE(body, 'old string', 'shiny new string');
    

    【讨论】:

    • 错误的解决方案。它将错误转换为警告并截断可能导致数据损坏的过大值(例如,最终 HTML 值可能变得无效)。如果最终值过大,您必须禁止更新。 dbfiddle.uk/…
    • 使用 IGNORE 对我来说很好,因为我不需要关心 html 损坏。不过,我很欣赏您的替代解决方案。请回答,我会接受的。
    • 这不是替代解决方案,而是关于可能出现问题的警告。
    猜你喜欢
    • 2021-05-09
    • 2012-02-11
    • 1970-01-01
    • 2013-04-03
    • 2017-01-17
    • 2015-03-05
    • 1970-01-01
    • 2018-07-06
    • 1970-01-01
    相关资源
    最近更新 更多