【问题标题】:add 'on update' & 'on delete' foreign key constraints with laravel migrations使用 laravel 迁移添加“更新时”和“删除时”外键约束
【发布时间】:2019-10-24 23:13:09
【问题描述】:

我正在把我的桌子变成这样......

    Schema::create('matched_merchants', function (Blueprint $table)
    {
        $table->increments('id')->unsigned();
        $table->integer('merchant_id')->unsigned();
        $table->integer('offer_id')->unsigned();
        $table->foreign('merchant_id')->references('id')->on('merchants')->onUpdate('cascade')->onDelete('restrict');
        $table->foreign('offer_id')->references('id')->on('offers')->onUpdate('cascade')->onDelete('restrict');
    });

我添加 2 个外键都有 onUpdate 和 onDelete 约束,但只添加了更新约束。

如果我删除 onUpdate,它会正确添加 onDelete 约束。

我无法单独添加它们,因为我得到了重复键的错误。

我可以使用原始 sql 语句手动添加它们,但如果有正确的方法,我宁愿这样做。

【问题讨论】:

    标签: php mysql laravel


    【解决方案1】:

    由于某种原因,如果您将列设置为nullable(),Laravel 会正确设置外键。

    也就是说,我可以看到这会导致其他问题,因此我建议执行原始 SQL 语句。

    【讨论】:

      猜你喜欢
      • 2018-04-01
      • 2019-07-31
      • 2016-03-03
      • 2019-03-24
      • 2017-03-27
      • 1970-01-01
      • 2021-08-30
      • 2020-09-21
      • 2020-03-12
      相关资源
      最近更新 更多