我想将隔离级别设置为repeatable read
。我如何使用gorm orm为postgres实现这一目标。
示例代码:
func CreateAnimals(db *gorm.DB) err {
tx := db.Begin()
// Note the use of tx as the database handle once you are within a transaction
if err := tx.Create(&Animal{Name: "Giraffe"}).Error; err != nil {
tx.Rollback()
return err
}
if err := tx.Create(&Animal{Name: "Lion"}).Error; err != nil {
tx.Rollback()
return err
}
tx.Commit()
return nil
}
答案 0 :(得分:3)
我遇到了完全相同的问题here:
func GetPageAfterUpdate(dp model.DbProvider, id int, update int, page *Page) (err error) {
tx := dp.DB().Begin()
err = tx.Exec(`set transaction isolation level repeatable read`).Error
if err != nil {
tx.Rollback()
return
}
与pg完全相同。