go gorm手动事务的实例
scoresModel := novel.ScoresModel{NovelId: int(novelId), UserId: int(userId), Score: n.starNumTOScore(int(starNum))}
// 开始事务
tx := variable.GormDbMysql.Begin()
if err := tx.Table("tb_novel_scores").Create(&scoresModel).Error;err != nil {
//
tx.Rollback()
return err
}
if err := tx.Table("tb_novel_statistics").Where("novel_id = ?", novelId).Update("score_num", gorm.Expr("score_num + ?", 1)).Error;err != nil {
tx.Rollback()
return err
}
tx.Commit()
return nil