通过数据变更或SQLConsole执行DML语句时提示“Data truncation:Data too long”

更新时间:

问题描述

通过数据变更或SQLConsole执行RDS MySQL实例或自建MySQL数据库(ECS自建数据库或IDC自建数据库)的DML语句时,出现了截断报错,报错信息如下。

Data truncation:Data too long

问题原因

指定写入该字段值的长度超过了表结构定义的对应字段长度,导致数据无法正确写入,出现了截断报错。

解决方案

检查表结构的定义及DML需求,根据实际情况确认使用以下方法:

  • 调整表结构中该字段的长度:
    • 通过DMS控制台调整字段长度:
      1. 登录DMS控制台
      2. 在左侧的导航栏中单击目标实例后,右键单击目标数据库,然后单击查询
      3. 在右侧界面中,右键单击目标表,然后单击编辑表结构
      4. 单击列信息,根据实际情况,调整目标列的长度。
    • 通过SQL语句调整字段长度(示例如下):
      ALTER TABLE `[$Table]` MODIFY COLUMN `[$Field]` [$Type]([$Num]);
      说明
      • [$Table]为需要调整的表名。
      • [$Field]为需要调整的字段名。
      • [$Type]为字段类型。
      • [$Num]为字段的长度。
  • 修改您要执行的DML语句的字段类型,使其满足要求。

适用于

  • 数据管理DMS
  • 云数据库RDS
    说明:本文适用于RDS MySQL实例或自建MySQL数据库(ECS自建数据库或IDC自建数据库)。