我正在尝试级联删除下面的结构:
type Action struct {
gorm.Model
Name string
Email string
Halls []Hall `gorm:"foreignKey:ActionID"`
}
type Hall struct {
gorm.Model
Name string
ActionID uint
Stream Stream `gorm:"foreignKey:HallID"`
}
type Stream struct {
ID uint `gorm:"primaryKey"`
HallID uint
Name string
}db.Select("Halls").Delete(&action) -适用于选定的action和所有相关的halls。
如何删除该streams及相关and
类似于:
db.Select("Halls", "Streams").Delete(&action)
db.Select("Streams").Select("Halls").Delete(action) 不起作用。
谢谢
发布于 2021-05-31 18:57:01
您不能在同一查询中同时使用delete和select,这意味着这样做是不可行的,但是您可以使用这个reference link
HallID).Delete(&action),
db.Where("hall_id IN ?“
并在流中将HallID设置为constraint:OnDelete:CASCADE,这样当您删除大厅时,无论哪个大厅关联,流都会自动删除
https://stackoverflow.com/questions/67717302
复制相似问题