首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ActiveRecord::InvalidForeignKey: PG::ForeignKeyViolation: ERROR: update或delete表违反外键约束

ActiveRecord::InvalidForeignKey: PG::ForeignKeyViolation: ERROR: update或delete表违反外键约束
EN

Stack Overflow用户
提问于 2018-01-12 21:30:38
回答 2查看 3.8K关注 0票数 2

SO上有一个非常类似的问题。现答覆如下:

先删除用户11的注释,或者更改外键,使其处于“启动删除级联”模式--删除父记录将导致自动删除子记录。

但我认为这是dependent: :destroy的目的。删除记录时,它会删除其关联。

我有以下几点:

代码语言:javascript
运行
复制
class Venue < ApplicationRecord
  has_many :entrees, dependent: :destroy
end

class Entree < ApplicationRecord
  belongs_to :venue
end

我尝试以下几点:

代码语言:javascript
运行
复制
Venue.delete_all
DELETE FROM "venues"
ActiveRecord::InvalidForeignKey: PG::ForeignKeyViolation: ERROR:  update or delete on table "venues" violates foreign key constraint "fk_rails_8fda228aa3" on table "entrees"

我是不是错过了dependent: :destroy的目的?另外,如果dependent: :destroy只打算删除没有外键约束的关联,那么我如何删除具有外键约束的受抚养人?是否有Rails级联选项?

EN

回答 2

Stack Overflow用户

发布于 2018-09-18 11:10:16

它的工作,试试这个

代码语言:javascript
运行
复制
ActiveRecord::Base.connection.disable_referential_integrity do
Book.destroy_all
Genre.destroy_all
end
票数 4
EN

Stack Overflow用户

发布于 2018-01-13 04:07:01

尝试以下几点

代码语言:javascript
运行
复制
Venue.destroy_all

对我来说很管用

代码语言:javascript
运行
复制
Venue.delete_all

不工作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48234261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档