Far*_*mov 32 php database-migration laravel laravel-4
我的表中有user_id fk列
$table->foreign('user_id')->references('id')->on('users');
Run Code Online (Sandbox Code Playgroud)
我应该在现有列上添加级联删除功能.我怎样才能做到这一点?
Far*_*mov 67
先删掉外键.感谢Razor的提示
$table->dropForeign('answers_user_id_foreign');
$table->foreign('user_id')
->references('id')->on('users')
->onDelete('cascade');
Run Code Online (Sandbox Code Playgroud)
就我而言,我需要将 col 名称放在一个数组中,否则会出错。
Schema::table('transactions', function (Blueprint $table) {
$table->dropForeign(['transactions_order_id_foreign']);
$table->foreign('order_id')
->references('id')->on('orders')
->onDelete('cascade')
->change();
});
Run Code Online (Sandbox Code Playgroud)
mysql 5.7 版本
$table->foreign('user_id')
->references('id')->on('users')
->onDelete('cascade');
Run Code Online (Sandbox Code Playgroud)
Laravel 模式构建器无法修改当前状态下的列,因此您将使用原始查询。您将不得不删除并重新创建约束:
PostgreSQL
function up()
{
DB::statement('alter table answers drop constraint answers_user_id_foreign,
add constraint answers_user_id_foreign
foreign key (user_id)
references users(id)
on delete cascade;'
);
}
function down()
{
DB::statement('alter table answers drop constraint answers_user_id_foreign,
add constraint answers_user_id_foreign
foreign key (user_id)
references users(id);'
);
}
Run Code Online (Sandbox Code Playgroud)
MySQL
function up()
{
DB::statement('alter table answers drop FOREIGN KEY answers_user_id_foreign;');
DB::statement('alter table answers add constraint answers_user_id_foreign
foreign key (user_id)
references users(id)
on delete cascade;'
);
}
function down()
{
DB::statement('alter table answers drop FOREIGN KEY answers_user_id_foreign;');
DB::statement('alter table answers add constraint answers_user_id_foreign
foreign key (user_id)
references users(id);'
);
}
Run Code Online (Sandbox Code Playgroud)
感谢您的提问。帮助我在 L5.1 中获取此工作代码:
public function up()
{
Schema::table('transactions', function (Blueprint $table) {
$table->dropForeign('transactions_order_id_foreign');
$table->foreign('order_id')
->references('id')->on('orders')
->onDelete('cascade')
->change();
});
Schema::table('orders', function (Blueprint $table) {
$table->dropForeign('orders_user_id_foreign');
$table->foreign('user_id')
->references('id')->on('users')
->onDelete('cascade')
->change();
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30618 次 |
| 最近记录: |