我有两个具有一对一关系的表,由外键约束设置。我想将onDelete
规则设置为'设置默认值',这意味着当删除外表上的行时,引用值将恢复为其默认值。这是我的代码:
图表:
Schema::create('tours', function (Blueprint $table) {
$table->increments('id')->unsigned()->index();
$table->integer('grade')->unsigned()->default(1);
$table->timestamps();
});
等级表:
Schema::create('grades', function(Blueprint $table){
$table->increments('id')->unsigned()->index();
$table->string('name');
$table->timestamps();
});
设置外键:
Schema::table('tours', function (Blueprint $table) {
$table->foreign('grade')->references('id')->on('grades')->onDelete('set default');
});
当我运行迁移时,它可以正常工作 - 没有错误。但是,看看HeidiSQL中的表格,它还没有正常工作;外键已设置,但onDelete属性只显示' NO ACTION'。
随后,当我删除了成绩表中的一行时,出现了外键约束错误。
我做错了什么?