dpepbjp126917
dpepbjp126917
2019-06-10 14:24

通过laravel迁移添加'on update'和'on delete'外键约束

已采纳

I am making my table like this...

    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');
    });

Im adding 2 foreign keys both have onUpdate and onDelete constraints but only the update constraint gets added.

If i delete the onUpdate, it will correctly add the onDelete constraint.

I cannot add them separately because i get the error of duplicate key.

I could add them manually with a raw sql statement but if theres a right way to do it id rather do that.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • douxiaochun4964 douxiaochun4964 2年前

    For some reason, if you set the columns as nullable(), Laravel sets the foreign keys correctly.

    That said, I can see that causing other problems, so I recommend doing the raw SQL statement.

    点赞 评论 复制链接分享

相关推荐