Laravel如何从非主键创建外键约束

问题描述 投票:3回答:1

我有一张名为header的桌子

$table->increments('id');
$table->integer('restaurant_number')->unsigned();
$table->integer('transaction_id')->unsigned()->unique(); <-- Right here

docs它说

Laravel还支持创建外键约束,这些约束用于强制数据库级别的引用完整性。例如,让我们在posts表上定义一个user_id列,该列引用users表上的id列:

但是在我的details表上,我引用了不是主键的标题中的transaction_id,我得到错误这个错误(errno: 150 "Foreign key constraint is incorrectly formed")。如何从非主要引用它

$table->increments('id');
$table->integer('restaurant_number')->unsigned();
$table->integer('transaction_id')->unsigned()->nullable();
$table->foreign('transaction_id')->references('transaction_id')->on('header');
php mysql laravel laravel-5.5
1个回答
1
投票

也许问题是因为两个表都是完全相同的类型。我可以看到,在第二个表中,该字段可以为空,而在第一个表中则不是。也许这就是问题所在

© www.soinside.com 2019 - 2024. All rights reserved.