我有一个名为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
表上,我引用了不是主键的header_id中的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');
答案 0 :(得分:1)
也许问题是因为两个表都是完全相同的类型。我可以看到,在第二个表中,该字段可以为空,而在第一个表中则不是。也许这就是问题