【问题标题】:Conflict with foreign key on table users与表用户的外键冲突
【发布时间】:2018-03-01 02:31:04
【问题描述】:

我有由 laravel 生成的 users 表和一个 store 表,我希望所有用户都有一个来自 id 存储的外键,但是当我添加 id 时它告诉我外格式存在错误...如果可以使用其他表,则只有与用户发生冲突,我不知道是否可能是因为它是在表存储之前创建的,但我仍然更改了名称以进行存储迁移以前,但什么都没有,还是一样。感谢您的帮助!

>   [Illuminate\Database\QueryException]   SQLSTATE[HY000]: General
> error: 1005 Can't create table `Shop`.`#sql-17ec_5` (errno: 150
> "Foreign key constraint    is incorrectly formed") (SQL: alter table
> `users` add constraint `users_store_id_foreign` foreign key (`store_id
> `) references `store` (`id`))
> 
> 
> 
>   [PDOException]   SQLSTATE[HY000]: General error: 1005 Can't create
> table `shop`.`#sql-17ec_5` (errno: 150 "Foreign key constraint    is
> incorrectly formed")

【问题讨论】:

  • 请提供迁移代码和您收到的错误
  • 首先创建两个表,然后尝试在它们之后添加新的迁移以添加外键约束。
  • 向我们展示您的代码。向我们展示错误。请访问帮助中心并阅读How to Ask
  • 完成!那是错误,感谢您的回答

标签: php laravel laravel-5


【解决方案1】:

如果是小数据:

检查你放在users表中的外部id是否已经作为id存在于store表中。

如果是批量数据:

先去掉外键检查。

第二次使用他们的商店 ID 更新所有用户表。

第三次通过选择查询运行手动检查,以导出商店主表中不存在的用户商店 ID 列表。

Select user.ID, user.name, user.Store_ID from users 
Where Store_ID not IN (Select ID from Store)

【讨论】:

    猜你喜欢
    • 2018-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-24
    相关资源
    最近更新 更多