用于复合唯一键的 Gorm 标签

Але*_*екс 3 postgresql go go-gorm

如何描述复合唯一键的 gorm 标签?

Postgres:

phone_country_code VARCHAR(10), 
phone_number VARCHAR(25),
CONSTRAINT phone_country_code_number UNIQUE (phone_country_code, phone_number)
Run Code Online (Sandbox Code Playgroud)

Go(模型结构体的字段):

PhoneCountryCode       string    `gorm:"column:phone_country_code; type:VARCHAR(10)"`
PhoneNumber            string    `gorm:"column:phone_number; type:VARCHAR(25)"`
Run Code Online (Sandbox Code Playgroud)

Eze*_*uns 5

根据复合索引的文档,您可以通过在两个或多个字段中使用相同的索引名称来创建唯一的复合索引:

PhoneCountryCode       string    `gorm:"uniqueIndex:idx_code_phone; type:VARCHAR(10)"`
PhoneNumber            string    `gorm:"uniqueIndex:idx_code_phone; type:VARCHAR(25)"`
Run Code Online (Sandbox Code Playgroud)

这与添加约束具有相同的效果。

(注意:column为了便于阅读,我删除了标签,因为默认情况下 Gorm Snake 会使用字段名称来获取列名称,所以不需要它)。