外键约束格式不正确,Laravel
我试图迁移数据库,但我得到了一个错误,我不知道为什么。不确定什么是“格式错误” SQLSTATE[HY000]:一般错误:1005无法创建表外键约束格式不正确,Laravel,laravel,laravel-7,Laravel,Laravel 7,我试图迁移数据库,但我得到了一个错误,我不知道为什么。不确定什么是“格式错误” SQLSTATE[HY000]:一般错误:1005无法创建表anime\u dblkp\u卡(错误号:150“外键约束格式不正确”)(SQL:alter tablelkp\u卡添加约束lkp\u卡通列表id\u外键(lkp\u anime\u列表id)参考资料lkp\u anime\u列表(id)在删除级联中) 你应该使用 $table->unsignedBigInteger('lkp_anime_list_i
anime\u db
lkp\u卡
(错误号:150“外键约束格式不正确”)(SQL:alter tablelkp\u卡
添加约束lkp\u卡通列表id\u外键(lkp\u anime\u列表id
)参考资料lkp\u anime\u列表
(id
)在删除级联中)
你应该使用
$table->unsignedBigInteger('lkp_anime_list_id')
相反,由于主键和外键应在相同的数据类型中,因此应使用
$table->unsignedBigInteger('lkp_anime_list_id')
相反,因为主键和外键应该在相同的数据类型中,这对我来说很有用
$table->bigInteger('lkp_anime_list_id')->unsigned();
对于Laravel版本6+这对我来说很有用
$table->bigInteger('lkp_anime_list_id')->unsigned();
对于Laravel版本6+,因为lkp\u卡。lkp\u动画列表\u id
未签名,而lkp\u动画列表。id
未签名。因此,要么删除->unsigned()
,要么将其添加到上面的$table->id()
列表中,最初没有,但我重新测试了,得到了相同的错误。编辑您的帖子,在两列签名匹配的情况下显示代码。好的,我这样做了。新版本的Laravel使id()
函数别名为大增量
,因此您还需要更改$table->integer('lkp\u anime\u list\u id')代码>到$table->biginger('lkp\u anime\u list\u id')代码>因为lkp\u cards.lkp\u anime\u list\u id
未签名,而lkp\u anime\u list.id
未签名。因此,要么删除->unsigned()
,要么将其添加到上面的$table->id()
列表中,最初没有,但我重新测试了,得到了相同的错误。编辑您的帖子,在两列签名匹配的情况下显示代码。好的,我这样做了。新版本的Laravel使id()
函数别名为大增量
,因此您还需要更改$table->integer('lkp\u anime\u list\u id')代码>到$table->biginger('lkp\u anime\u list\u id')代码>这就是答案,谢谢!但是您可以告诉我为什么在其他一些列上只使用“integer”?可能是因为您使用“increments()”方法创建了主键,该方法是unsignedInteger。但是现在您开始使用“id()”方法,它是unsignedbigInteger这就是答案,谢谢!但是您可以告诉我为什么在其他一些列上只使用“integer”?可能是因为您使用“increments()”方法创建了主键,该方法是unsignedInteger。但是现在您开始使用“id()”方法,它是unsignedbiginger