mysql - 如果父表中的行被删除,如何自动从子表中删除行

标签 mysql laravel database-design eloquent

我有两张 table (客户和预订)

客户表:

|       id       |
|      name      |
|   created_at   |
|   updated_at   |

预订表:

|       id         |
|     product      |
|   customer_id    |
|    created_at    |
|    updated_at    |

如何创建迁移文件,以便在删除客户时删除与客户相关的所有预订?

最佳答案

只需设置外键onDelete即可级联

Schema::create('bookings_table', function (Blueprint $table) {
    $table->increments('id');
    $table->string('product');
    $table->unsignedInteger('customer_id');
    $table->timestamps();

    $table->foreign('customer_id')
        ->references('id')
        ->on('customer_table')
        ->onDelete('cascade')
        ->onUpdate('cascade');
});

关于mysql - 如果父表中的行被删除,如何自动从子表中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52552826/

相关文章:

php - Laravel excel,水平阅读

php - Laravel 4 - 外键约束失败

mysql - 如何保证表中两个可为空的列之间只存在一个值

mysql - 无法使用phpmyadmin连接到mysql远程服务器

php - Eloquent 存储表单数据

php - 限制 PHP 即时搜索的结果?

php - 无法使用 Laravel 中的迁移向表添加新列

php - 使用 migrate :make 在 laravel 中调用 artisan

sql - 多列外键约束

sql - 递归关系的数据库设计