Laravelで外部キー制約を削除する場合、マイグレーションのupメソッドで
public function up() {
Schema::table('{テーブル名}', function (Blueprint $table) {
$table->dropForeign('{テーブル名}_{カラム名}_foreign');
});
}
こんな感じに書いてあげればいい。
指定するインデックス名はインデックス名は通常以下のSQLで確認できる
show index from テーブル名;
しかし、プライマリキーかつ外部キー制約のインデックス注意が必要。キー名がPRIMARYになっているが、これを指定して外部キー制約を解除しようとしてもエラーになってしまいます。
実際のキー名は以下のSQLで確認できる
SHOW CREATE TABLE テーブル名;
CONSTANT の後ろあたりに書いてあるとおり、キー名は {テーブル名}_{カラム名}_foreign になっているので注意が必要。
コメント