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

Joh*_*n S 8 go go-gorm

如何定义我的structs 以在 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"`
}
Run Code Online (Sandbox Code Playgroud)

Seb*_*ian 12

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

type Something struct {
    gorm.Model
    First  string `gorm:"index:idx_name,unique"`
    Second string `gorm:"index:idx_name,unique"`
}
Run Code Online (Sandbox Code Playgroud)


Ahm*_*hem 11

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

type Something struct {
    gorm.Model
    First  string `sql:"unique_index:idx_first_second"`
    Second string `sql:"unique_index:idx_first_second"`
}
Run Code Online (Sandbox Code Playgroud)


blu*_*ope 10

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

type Something struct {
    gorm.Model
    First  string `gorm:"uniqueIndex:idx_first_second"`
    Second string `gorm:"uniqueIndex:idx_first_second"`
}
Run Code Online (Sandbox Code Playgroud)