gorm加锁操作
转自:https://blog.csdn.net/juzipidemimi/article/details/104502385仅做个人备份,浏览请看原文func UpdateUser(db *gorm.DB, id int64) error {tx := db.Begin()defer func() {if r := recover(); r != nil {tx.Rollback()}}().
·
转自:https://blog.csdn.net/juzipidemimi/article/details/104502385
仅做个人备份,浏览请看原文
func UpdateUser(db *gorm.DB, id int64) error {
tx := db.Begin()
defer func() {
if r := recover(); r != nil {
tx.Rollback()
}
}()
if err := tx.Error; err != nil {
return err
}
user := User{}
// 锁住指定 id 的 User 记录
if err := tx.Set("gorm:query_option", "FOR UPDATE").First(&user, id).Error; err != nil {
tx.Rollback()
return err
}
// 更新操作...
// commit事务,释放锁
if err := tx.Commit().Error; err != nil {
return err
}
return nil
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)