当前位置: 首页 > wzjs >正文

舞蹈培训网站模板seo优化文章网站

舞蹈培训网站模板,seo优化文章网站,柳州小程序制作公司,无锡网站建设设计公司最近在编写一段代码的时候碰到了下面的一种情况那就是,在一个事务中插入一条数据,然后插入数据之后判断当前的插入是否生效,写的代码大概如下: return dao.db.WithContext(ctx).Transaction(func(tx *gorm.DB) error {err : tx.C…

最近在编写一段代码的时候碰到了下面的一种情况那就是,在一个事务中插入一条数据,然后插入数据之后判断当前的插入是否生效,写的代码大概如下:

return dao.db.WithContext(ctx).Transaction(func(tx *gorm.DB) error {err := tx.Clauses(clause.OnConflict{Columns:   []clause.Column{{Name: "key"}},DoNothing: true,}).Create(&record).Errorif err != nil {return err}if tx.RowsAffected == 0 {return nil}
})

结果后来发现,这段代码执行到:

if tx.RowsAffected == 0 {return nil
}

就自动结束了, 这里 tx.RowsAffected 实际指的是上一次 DB 操作的影响行数,但我查的是事务对象的属性,不是具体这条 Create 语句的影响行数。

在 GORM 里,RowsAffected 是属于 DB 实例(即 tx.Clauses(...).Create(&record) 返回的那个对象),而不是全局的 tx。

其实修改一下代码实现即可:

dbResult := tx.Clauses(clause.OnConflict{Columns:   []clause.Column{{Name: "key"}},DoNothing: true,
}).Create(&record)if dbResult.Error != nil {return dbResult.Error
}if dbResult.RowsAffected == 0 {return nil
}
http://www.dtcms.com/wzjs/422982.html

相关文章:

  • 自己怎么做外贸批发网站app推广平台排行榜
  • 企业建设网站公司名称大全泰安seo公司
  • 东莞大朗网站建设深圳网络推广公司有哪些
  • wordpress建站数据库站长统计网站
  • 玛酷机器人少儿编程加盟怎么优化电脑系统
  • 深圳云网站建站公司广州网页定制多少钱
  • wordpress如何查看并修改源代码sem推广优化
  • 在建设局网站备案怎么弄百度站长工具怎么用
  • java软件开发培训平台百度ocpc怎么优化
  • 安庆商城网站开发公司营销策划方案
  • 北京做网站哪家便宜市场营销一般在哪上班
  • 专业做简历的网站新手怎么入行sem
  • 网站banner怎么做的世界足球排名最新
  • 网站建设 网络推广网络推广和运营的区别
  • 在床上做很黄很暴力网站互联网推广有哪些方式
  • 广东中山市做网站网站推广系统方案
  • 微信小程序注册后怎么登录seosem是什么职位
  • 吕梁网站制作网络营销工作内容
  • 滨州网站建设公司电话什么叫外链
  • wordpress 全站https外链工厂
  • wordpress本地更换为网站域名全球网站访问量排名
  • 上海网站设计多少钱小红书seo软件
  • 企业网站建设专业百家号关键词排名
  • 牡丹江免费发布信息的平台优化关键词的方法正确的是
  • 集团官方网站建设新闻最新热点
  • 网站建设流程有哪些免费加客源
  • pc端宣传网站开发拼多多关键词排名查询
  • 现代简约风格装修效果图商丘seo公司
  • ECSHOP网站开发中心北京百度seo排名点击软件
  • 做网站费用走什么科目百度电脑版下载官方