如何用GORM在Go中实现软删除,将DeletedAt字段逻辑巧妙改写?
- 内容介绍
- 文章标签
- 相关推荐
本文共计995个文字,预计阅读时间需要4分钟。
GORM的软删除本质是将DeletedAt字段设置为非零时间值,而不是执行DELETE SQL语句。它不依赖于手动添加字段或编写条件,只需在结构体中包含gorm.DeletedAt类型的DeletedAt字段,GORM便会自动启用软删除逻辑。
常见错误现象:删完查不到记录,但数据库里行还在;或者调 Delete() 后发现 DeletedAt 是空值、没生效——大概率是字段类型不对或没加 gorm.Model 嵌入。
本文共计995个文字,预计阅读时间需要4分钟。
GORM的软删除本质是将DeletedAt字段设置为非零时间值,而不是执行DELETE SQL语句。它不依赖于手动添加字段或编写条件,只需在结构体中包含gorm.DeletedAt类型的DeletedAt字段,GORM便会自动启用软删除逻辑。
常见错误现象:删完查不到记录,但数据库里行还在;或者调 Delete() 后发现 DeletedAt 是空值、没生效——大概率是字段类型不对或没加 gorm.Model 嵌入。

