我创建了两个表,在第二个表中,我设置了一个外键。当我呼叫命令php artisan migrate
时,出现以下错误:
外键约束格式错误
第一个表名称是成员,第二个伙伴
$table->integer('member_id')->unsigned();
$table->foreign('member_id')->on('members')->references('id')->onDelete('cascade')->onUpdate('cascade');
答案 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。