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

时间:2015-06-14 15:43:55

标签: go go-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"`
}

4 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

这应该有效:

type Something struct {
    ID uint
    gorm.Model
    First  string `gorm:"primary_key"`
    Second string `gorm:"primary_key"`
}

答案 2 :(得分:0)

这是您的操作方式:您需要使用gorm struct标记并指定索引是唯一的

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

答案 3 :(得分:0)

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

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