MySQL插入失败需按“语法→权限→约束→数据→环境”顺序排查:主键/唯一索引冲突报ERROR 1062;字段类型或长度不匹配引发ERROR 1265/1366;外键或NOT NULL限制未满足导致ERROR 1452;权限不足或连接异常触发ERROR 1142等。
MySQL 数据插入失败通常不是单一原因导致的,而是由约束校验、权限配置、数据格式、连接状态等多方面问题共同作用的结果。定位时建议按“语法→权限→约束→数据→环境”顺序排查,避免盲目修改。
当插入的记录在主键(PRIMARY KEY)或带 UNIQUE 约束的字段上与已有数据重复时,MySQL 会直接报错 ERROR 1062: Duplicate entry。例如向用户表插入已存在的手机号或邮箱。
插入值超出定义范围(如 INT 超过 2147483647)、字符串超长(VARCHAR(10) 插入 15 个字符)、时间格式错误('2025-13-01')等,都会触发 ERROR 1265(Data truncated) 或 ERROR 1366(Incorrect string value)。
若表有外键(FOREIGN KEY),而插入的关联字段值在父表中不存在,会报 ERROR 1452: Cannot add or update a child row。同理,NOT NULL 字段传了 NULL 或空字符串(且字段未设默认值)也会失败。
用户无 INSERT 权限、连接被中断、事务未提交或锁表(如被 ALTER TABLE 阻塞)都可能导致写入失败。错误提示可能为 ERROR 1142: INSERT command denied 或超时类报错(如 ERROR 2006 / E
RROR 2013)。
不复杂但容易忽略