如何为Gorm指定具有多列唯一索引的结构体?

huangapple go评论102阅读模式
英文:

How to specify a struct with a multi-column unique index for Gorm?

问题

如何定义我的struct以在Go中向Gorm指定多列唯一索引?

例如:

type Something struct {
    gorm.Model
    First  string `sql:"unique_index:unique_index_with_second"`
    Second string `sql:"unique_index:unique_index_with_first"`
}

你需要在struct的字段上使用sql标签来指定唯一索引。在标签中,使用unique_index关键字后跟索引名称,以指定唯一索引的名称。在你的示例中,First字段使用unique_index:unique_index_with_second指定了一个名为unique_index_with_second的唯一索引,Second字段使用unique_index:unique_index_with_first指定了一个名为unique_index_with_first的唯一索引。

请注意,你需要确保在使用Gorm之前正确导入Gorm库,并在代码中进行相应的配置和初始化。

英文:

How do I define my structs to specify a multi-column unique index to Gorm in Go?

Such as:

type Something struct {
	gorm.Model
	First  string `sql:"unique_index:unique_index_with_second"`
	Second string `sql:"unique_index:unique_index_with_first"`
}

答案1

得分: 28

这是如何做的:您需要使用gorm结构标签,并指定索引是唯一的。

type Something struct {
    gorm.Model
    First  string `gorm:"index:idx_name,unique"`
    Second string `gorm:"index:idx_name,unique"`
}

这样定义的结构体中,FirstSecond 字段都被标记为 idx_name 索引,并且该索引是唯一的。

英文:

this is how you do it: You need to use the gorm struct tag and specify that the index is unique

type Something struct {
    gorm.Model
    First  string `gorm:"index:idx_name,unique"`
    Second string `gorm:"index:idx_name,unique"`
}

答案2

得分: 13

你可以为每个列定义相同的唯一索引。

type Something struct {
    gorm.Model
    First  string `sql:"unique_index:idx_first_second"`
    Second string `sql:"unique_index:idx_first_second"`
}
英文:

You can define same unique index for each column.

type Something struct {
    gorm.Model
    First  string `sql:"unique_index:idx_first_second"`
    Second string `sql:"unique_index:idx_first_second"`
}

答案3

得分: 9

对于最新版本的gorm(或者对于我的情况),这段代码是有效的:

type Something struct {
    gorm.Model
    First  string `gorm:"uniqueIndex:idx_first_second"`
    Second string `gorm:"uniqueIndex:idx_first_second"`
}
英文:

for latest version of gorm (or for my case)
this works:

type Something struct {
    gorm.Model
    First  string `gorm:"uniqueIndex:idx_first_second"`
    Second string `gorm:"uniqueIndex:idx_first_second"`
}

huangapple
  • 本文由 发表于 2015年6月14日 23:43:54
  • 转载请务必保留本文链接:https://go.coder-hub.com/30831316.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定