将“ON DELETE CASCADE”添加到Laravel中的现有列

2022-08-30 08:41:47

我的表中有user_id fk 列

$table->foreign('user_id')->references('id')->on('users');

我应该向此现有列添加级联删除功能。我该怎么做?


答案 1

首先删除外键。感谢剃刀的这个提示

$table->dropForeign('answers_user_id_foreign');
$table->foreign('user_id')
->references('id')->on('users')
->onDelete('cascade');

答案 2

在我的情况下,我需要将col名称放在数组中,否则这将是一个错误。

Schema::table('transactions', function (Blueprint $table) {
    $table->dropForeign(['transactions_order_id_foreign']);
    $table->foreign('order_id')
        ->references('id')->on('orders')
        ->onDelete('cascade')
        ->change();
});

mysql 5.7 ver


推荐