11

如何定义我struct的 s 以在 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"`
}
4

4 回答 4

19

你是这样做的:你需要使用 gorm struct 标签并指定索引是唯一的

type Something struct {
    gorm.Model
    First  string `gorm:"index:idx_name,unique"`
    Second string `gorm:"index:idx_name,unique"`
}
于 2020-10-18T18:58:36.773 回答
13

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

type Something struct {
    gorm.Model
    First  string `sql:"unique_index:idx_first_second"`
    Second string `sql:"unique_index:idx_first_second"`
}
于 2020-08-20T00:29:50.880 回答
4

对于最新版本的gorm(或我的情况),这有效:

type Something struct {
    gorm.Model
    First  string `gorm:"uniqueIndex:idx_first_second"`
    Second string `gorm:"uniqueIndex:idx_first_second"`
}
于 2021-05-06T20:03:43.180 回答
-11

您是否正在尝试创建一个表,以便 First 和 Second 的组合是唯一的?

这应该工作:

type Something struct {
    ID uint
    gorm.Model
    First  string `gorm:"primary_key"`
    Second string `gorm:"primary_key"`
}
于 2015-10-07T18:35:45.753 回答