最佳答案
尝试显式添加外键和 ON DELETE CASCADE
到您的模型。我发现 GORM 在处理这种事情时可能会出现问题,但明确地执行它似乎总能使其发挥作用。
例如:
type Person struct {
ID int
Bio Biography `gorm:"Foreignkey:PersonID;"`
Name string
}
type Biography struct {
ID int
Content string
PersonID int `sql:"type:bigint REFERENCES people(id) ON DELETE CASCADE"`
}
注意:您必须指定将调用的实际数据库列和表,而不是字段。由于 GORM 自动将表复数化并将表转换为 snake_case,因此我引用了列 people(id)
。如果您覆盖此功能,请使用您拥有的任何表名和列名。
关于go - 如何删除 GORM 中有关系的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55764788/