Laravel 5.8:迁移外键约束格式不正确

时间:2019-04-10 11:21:30

标签: php laravel

我创建了两个表,在第二个表中,我设置了一个外键。当我呼叫命令php artisan migrate时,出现以下错误:

  

外键约束格式错误

第一个表名称是成员,第二个伙伴

$table->integer('member_id')->unsigned();
$table->foreign('member_id')->on('members')->references('id')->onDelete('cascade')->onUpdate('cascade');

3 个答案:

答案 0 :(得分:0)

您的成员表应在当前表之前创建
或者您的id字段与当前表的类型不同
请发布您的迁移文件

答案 1 :(得分:0)

首先,自Laravel 5.8起,所有ID均为NaN

但是,由于它们还没有唱歌,因此您可以执行以下操作:

bigintegers

对于第二行,您可能想要更改顺序:

$table->unsignedBigInteger('member_id');

请注意,应该先创建$table->foreign('member_id')->references('id')->on('members')->onDelete('cascade')->onUpdate('cascade'); 表,然后才能引用它的键。

答案 2 :(得分:0)

$table->integer('member_id')->unsigned();

更改为

$table->bigInteger('member_id')->unsigned();

因为laravel用作迁移文件中ID列的默认bigIncrement。