go - 如何删除 GORM 中有关系的表?

标签 go go-gorm go-gin

我删除了对象并希望在关系表中也删除它的 ID。我该怎么做? 即删除了具有关系的对象,但保留了它们的关系表。

enter image description here

还想问一下,GORM 是 Go-Gin 最好的 ORM 解决方案吗?

最佳答案

尝试显式添加外键和 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/

相关文章:

go - Go中的状态机

当找不到值时,Gorm 返回空对象而不是默认对象

gorm exec 使用原始 sql 从插入事务返回 ID

go - 类型 *gin.Context 没有字段或方法 SaveUploadedFile

go - 重新输入代码但保留现有界面

Go结构字段与接口(interface)方法同名

go - 需要对函数进行类型断言

go - 如何在 Go Gin 中使用模板获取动态内容

文件在 Go 中既存在又不存在?

mysql - Go-Gorm的关联模式如何获取RowsAffected