gpt4 book ai didi

Elixir 删除多对多关联

转载 作者:行者123 更新时间:2023-12-04 22:19:46 24 4
gpt4 key购买 nike

我有两个模型:用户和组。它们通过连接表进行多对多关联。
当我尝试删除用户(或组)时,它会引发此错误:

** (Ecto.ConstraintError) 尝试删除模型时出现约束错误:

* foreign_key: groups_user_id_key

我应该怎么做才能删除任何父模型?

最佳答案

数据库将引发这样的错误,因为连接表仍然包含对您尝试删除的用户/组的引用。
该问题有多种解决方案:

  • 您可以在手动删除用户/组之前删除所有连接表条目
  • 您可以设置 on_delete: :delete_all您的组/用户架构中的连接模型关联选项
  • 您可以设置 ON DELETE CASCADE数据库中的选项通过在外键约束定义中的迁移使用 references(table, on_delete: :delete_all) .

  • 您可以在此处的 Ecto 文档中找到更多相关信息: http://hexdocs.pm/ecto/Ecto.Schema.html#has_many/3在这里: http://hexdocs.pm/ecto/Ecto.Migration.html#references/2

    关于 Elixir 删除多对多关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33939169/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com