外键约束
为约束的「on delete」和「on update」属性指定所需的操作:
$table->foreign('user_id')
->references('id')->on('users')
->onDelete('cascade');
如果不指定,默认应该是 RESTRICT
。
Schema::create('user_has_departments', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('user_id')->index()->comment('用户编号');
$table->unsignedInteger('department_id')->index()->comment('部门编号');
$table->unsignedInteger('position_id')->comment('职位编号');
$table->timestamps();
// 外键
$table->foreign('user_id')->references('id')->on('users');
$table->foreign('department_id')->references('id')->on('departments');
$table->foreign('position_id')->references('id')->on('positions');
});
执行迁移后:
NO ACTION
和 RESTRICT
只在及个别的情况下有区别:NO ACTION
是在其他约束的动作之后执行,RESTRICT
具有最高的优先权执行。
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: