上回书说到,更新也叫修改,update,此章说明删除操作。
删除
删除一条记录的时候
删除一条记录时,删除对象需要指定主键,否则会触发批量删除。
// Email 的 ID 是 `10`
db.Delete(&email)
// DELETE from emails where id = 10;
// 带额外条件的删除
db.Where("name = ?", "jinzhu").Delete(&email)
// DELETE from emails where id = 10 AND name = "jinzhu";
根据条件删除
GORM 允许通过主键(可以是复合主键)和内联条件来删除对象。
db.Delete(&User{
}, 10)
// DELETE FROM users WHERE id = 10;
db.Delete(&User{
}, "10")
// DELETE FROM users WHERE id = 10;
db.Delete(&users, []int{
1,2,3})
// DELETE FROM users WHERE id IN (1,2,3);
钩子函数
对于删除操作,GORM 支持 BeforeDelete、AfterDelete Hook,在删除记录时会调用这些方法。
func (u *User) BeforeDelete(tx *gorm.DB) (err error) {
if u.Role == "admin" {

本文详细介绍了GORM库中的删除操作,包括单记录删除、条件删除、批量删除、钩子函数应用、软删除机制以及如何处理删除标志和唯一复合索引。
最低0.47元/天 解锁文章
1034

被折叠的 条评论
为什么被折叠?



