标签: Integrity constraint violation
-
文章记录了在 Laravel 9 中使用 chunkById 分块查询时遇到的 SQL 歧义报错问题。该错误提示 where 子句中的 id 列不明确。在尝试添加 column 参数后,虽然解决了歧义,却因为列不存在导致操作中止。最终通过同时添加 alias 参数,解决了报错并生成了符合预期的 SQL 语句。
-
在 Laravel 6 中,模型应用了软删除后再次插入记录会出现唯一键冲突,这是因为软删除仅更新 deleted_at 字段而未从数据库物理移除记录。由于查询结果自动排除软删除数据,需要使用 withTrashed 方法获取包含软删除在内的记录,再利用 forceDelete 方法进行硬删除。永久删除记录后,再次插入新数据即可避免冲突并成功执行。
-
在添加外键约束时遇到 SQLSTATE[23000] 报错,提示无法添加或更新子行。经分析,原因是 topics 表中存在用户 ID 为 9 的记录,但在关联的 users 表中已找不到对应的父记录。通过删除 topics 表中用户 ID 为 9 的脏数据再次执行命令,最终成功解决了报错,并顺利添加了外键约束 topics_user_id_foreign。
