【发布时间】:2018-03-20 06:26:55
【问题描述】:
我想删除广告系列但不删除广告系列并出现以下错误。
SQLSTATE[23000]:违反完整性约束:1451 无法删除或 更新父行:外键约束失败 (
demopurpose_fundraising.campaign_product, 约束campaign_product_campaign_id_foreign外键 (campaign_id) 参考campaign(id)) (SQL:从campaign中删除id= 60)
广告系列表架构:
Schema::create('campaign', function (Blueprint $table) {
$table->engine='InnoDB';
$table->increments('id');
$table->integer('users_id')->unsigned();
$table->foreign('users_id')->references('id')->on('users')->onDelete('cascade')->onUpdate('cascade');
$table->string('campaign_name');
$table->float('campaign_goal',8,2);
$table->string('discription',400);
$table->string('image');
$table->string('category');
$table->date('start_date');
$table->date('end_date');
$table->float('total_fund',8,2);
});
campaign_product 表架构:
Schema::create('campaign_product', function (Blueprint $table) {
$table->engine='InnoDB';
$table->increments('id');
$table->integer('campaign_id')->unsigned();
$table->foreign('campaign_id')->references('id')->on('campaign')->onDelete('cascade')->onUpdate('cascade');
$table->integer('product_id')->unsigned();
$table->foreign('product_id')->references('id')->on('product')->onDelete('cascade')->onUpdate('cascade');
});
【问题讨论】:
-
如果其他表中有子项,则不能删除父项。你可以做的是创建一个级联方法。这样 MySQL 将首先删除子条目,然后删除要删除的父行
-
我是 laravel 的新手。请提供它的代码..@ReyNorbertBesmonte
标签: php mysql database sql-delete laravel-5.5