DBAtlas · 数据库运维图谱

1366: Incorrect string/integer value for column(列的字符串/整数值不正确)

MySQL

含义

向列中插入了与其类型或字符集不兼容的值。通常由字符编码或类型不匹配引起。

原因

向 latin1 列写入 4 字节的 emoji/字符(utf8mb4)、向数值列写入非数字文本、连接字符集错误,或发送的值类型与预期不同。

解决方法

对于字符问题,将列/表转换为 utf8mb4:ALTER TABLE my_table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,并将连接字符集设为 utf8mb4。对数值字段在应用中校验类型。注意服务器运行在严格 SQL 模式(STRICT)下;根本原因在于数据的类型/编码。

在 DBAtlas 中打开 →

同一数据库的其他条目