dpepbjp126917 2019-06-10 14:24
浏览 151
已采纳

通过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 2019-06-10 14:49
    关注

    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.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 python使用python-pptx如何给幻灯片添加只读密码。
  • ¥15 深度神经网络传递自变量损失
  • ¥15 删除s的前驱节点,但是不知道错哪里了
  • ¥15 oracle数据库备份表如何操作
  • ¥15 软件定义网络mininet和onos控制器问题
  • ¥15 微信小程序 用oss下载 aliyun-oss-sdk-6.18.0.min client报错
  • ¥15 ArcGIS批量裁剪
  • ¥15 labview程序设计
  • ¥15 为什么在配置Linux系统的时候执行脚本总是出现E: Failed to fetch http:L/cn.archive.ubuntu.com
  • ¥15 Cloudreve保存用户组存储空间大小时报错