gorm多对多关联删除
直接调用 db.Delete(&article)
仅会删除 articles
表中的记录,而不会自动清除多对多关联关系(即 article_tags
连接表中的记录)。
在 GORM 中,对于多对多关联,如果需要同时删除关联关系,需要使用 Association Mode 来额外处理,例如:
// 删除文章所有 Tag 关联(删除连接表中的记录)
db.Model(&article).Association("Tags").Clear()
或者,可以配置数据库中的外键约束(例如添加 ON DELETE CASCADE
),不过这需要在数据库层面配置,是另一种实现方式。