為約束的「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 協議》,轉載必須註明作者和本文連結