英文:
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"`
}
这样定义的结构体中,First 和 Second 字段都被标记为 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"`
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。


评论