如何设置隔离级别

时间:2015-08-05 23:55:20

标签: postgresql go go-gorm

我想将隔离级别设置为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
}

1 个答案:

答案 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完全相同。