当前位置: 首页 > 面试题库 >

如何设置隔离级别

叶裕
2023-03-14
问题内容

我想将隔离级别设置为repeatable read。如何使用gorm orm for 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
}

问题答案:

我在这里有完全一样的问题:

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完全一样。



 类似资料:
  • 我想使用eclipse链接设置隔离级别,我尝试了以下两种方法: > java.sql.连接 Database aseLogin setTransationIsolation方法 如您所见,getTransactionSolation()方法的返回值之间存在一些不一致。我的问题是,在这两种情况下真正设置了哪种事务隔离?我知道eclipse链接在默认情况下使用不同的连接进行读写操作,即Database

  • 在标准/自定义kafkaconnect接收器中,我们如何指定它应该只使用来自kafka主题的read_comitted消息。我可以在这里看到配置,但看不到任何选项(除非这是默认行为)。谢了。https://docs . confluent . io/current/installation/configuration/connect/sink-connect-configs . html

  • 我正在写一个小拍卖app,这是非常重要的,我的出价是有把握的记录。毕竟,拍卖的最后几秒钟是买家的关键时刻,我不能冒险让他们同时出价和竞争。 当然,这就是事务隔离的目的。我可以将我的隔离级别设置为可序列化,然后我们就都设置好了。 但是其他的请求呢?如果用户正在查看配置文件或发送消息,则这些请求不需要任何接近那种事务隔离的地方。对于这些请求,“已提交读”隔离级别是完全可以接受的。 我正在将事务级别设置

  • 我手头有一个简单的任务:使用折线图或XY图或任何使用bean类型的数据源绘制整数-整数值对。有问题的bean返回X轴和Y轴的长值。人们期望的默认行为是在两个轴上显示1、2、3、4等刻度。 但是不,对于在两台不同计算机上运行的同一应用程序,我得到的值类似于2.5或1E1!好的,这篇旧帖子建议将设置为。现在确实显示了整数,但具有重复值,例如0,0,1,2,2,3,3,3,3,3,4,4等。同一篇文章建

  • 问题内容: 我有一个使用hibernate3.6.4版和c3p0 0.9.1.2版进行连接池的应用程序。我的基础RDBMS是MySql 5.0.67版。 我的MySql安装表明默认的事务隔离级别为“ REPEATABLE-READ”(4): 我尚未在hibernate.cfg.xml或应用程序中的任何位置更改或配置事务隔离级别。在应用程序中,我使用以下代码来打印配置: 我得到以下结果: 因此,我的

  • 问题内容: 我在研究此文档时遇到的文档表明,对其他数据库执行此操作的方法是在查询中使用多个语句,例如: 不幸的是,这样做不会产生任何结果,因为显然Python DB API(或者可能只是这种实现?)在单个查询中不支持多个记录集。 过去有人在此方面取得过成功吗? 问题答案: 我认为这不适用于MySQLdb驱动程序;您将不得不发出单独的查询: MySQLdb游标的execute()方法只能看到第一个查