gorm的Clause的使用方式 以及参数介绍

找了一些资料 根据唯一索引的操作

在id冲突的情况下 更新列

service.G.Clauses(clause.OnConflict{
		Columns:   []clause.Column{{Name: "id"}},
		DoUpdates: clause.AssignmentColumns([]string{"title", "content", "statu"}),
	}).Create(ac)
	

冲突的时候啥也不做,适合只插入

service.G.Clauses(clause.OnConflict{DoNothing: true}).Create(ac)

id冲突的时候更新指定的列为指定的值

service.G.Clauses(clause.OnConflict{
		Columns:   []clause.Column{{Name: "id"}},
		DoUpdates: clause.AssignmentColumns(map[string]interface{}{"statu":-1}),
	}).Create(ac)

在冲突时,更新除主键以外的所有列

service.G.Clauses(clause.OnConflict{UpdateAll: true}).Create(ac)
伍先生
  • 职业: 程序员,产品
  • 码龄: 5.2
  • 技能: PHP Go 前端
  • 微信: JwCode
  • 公众号/小程序: 渐悟分享