与表用户的外键冲突

时间:2017-09-20 06:51:11

标签: php laravel laravel-5

我有laravel和商店表生成的users表,我希望所有用户都有来自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")

1 个答案:

答案 0 :(得分:0)

如果数据量很小:

检查您在users表中输入的外来ID是否已作为商店表中的ID存在。

如果是批量数据:

首先删除外键检查。

第二次更新所有用户表及其商店ID。

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

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