外來鍵約束

mayingbiao89發表於2018-06-13

為約束的「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');

        });

執行遷移後:

file

NO ACTIONRESTRICT 只在及個別的情況下有區別:NO ACTION 是在其他約束的動作之後執行,RESTRICT 具有最高的優先權執行。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章