Laravel本地开发保存数据报500及1062主键重复错误如何解决?
Laravel本地提交记录返回500(1062主键重复错误)修复方案
完整性约束违反:1062 主键索引出现重复值 '0'
问题根因
该报错本质是插入数据时,主键字段被传入了已存在的0值,触发唯一索引约束。仅本地复现、其他开发环境正常的特性,可排除代码业务逻辑问题,优先排查本地环境的数据库配置、表结构差异。
可落地修复步骤
- 检查对应数据表的主键自增属性
登录本地数据库执行命令DESC 业务表名;,查看主键字段(通常为id)的Extra列是否包含auto_increment标识。如果没有,大概率是本地迁移执行异常、或手动修改过表结构导致自增属性丢失,插入数据时数据库默认给主键补0,触发重复报错。 - 同步最新迁移文件后全量重置表结构
先拉取仓库最新代码,确认对应表的迁移文件中主键定义配置了->autoIncrement(),再执行命令php artisan migrate:fresh --seed全量重建表结构和测试数据。 - 核对模型的主键相关配置
检查对应模型的两个配置项:- 不存在
public $incrementing = false;配置,该配置会关闭Laravel默认的主键自增逻辑 protected $primaryKey配置的主键字段名与数据库实际主键一致,无拼写错误
- 不存在
- 排查请求是否手动传入了主键值
打印接口完整请求参数,确认前端提交或后端逻辑中没有手动给主键字段赋值为0的操作。
内容的提问来源于stack exchange,提问作者BlackBee
相关产品推荐
相关产品推荐


