postgresql - 复合唯一键的 Gorm 标签
问题描述
如何描述复合 UNIQUE 键的 gorm 标签?
Postgres:
phone_country_code VARCHAR(10),
phone_number VARCHAR(25),
CONSTRAINT phone_country_code_number UNIQUE (phone_country_code, phone_number)
Go(模型结构的字段):
PhoneCountryCode string `gorm:"column:phone_country_code; type:VARCHAR(10)"`
PhoneNumber string `gorm:"column:phone_number; type:VARCHAR(25)"`
解决方案
根据复合索引上的文档,您可以通过在两个或多个字段中使用相同的索引名称来创建唯一的复合索引:
PhoneCountryCode string `gorm:"uniqueIndex:idx_code_phone; type:VARCHAR(10)"`
PhoneNumber string `gorm:"uniqueIndex:idx_code_phone; type:VARCHAR(25)"`
这将与添加约束具有相同的效果。
(注意:为了便于阅读,我删除了column
标签,因为 gorm snake 默认情况下将字段名称设置为获取列名称,所以不需要它)。
推荐阅读
- javascript - 如何在页面呈现之前加载字体?
- ruby-on-rails - Rails 5使用参数从url地址查询
- angular - 如何使用 django rest 框架和 angular 上传图片?
- spring - 带有两个罐子的 docker 中的 Spring Boot
- rest - 是否必须将 RestTemplate 用于宁静的 Web 服务?或者在给@PostMapping 提供响应实体时可以忽略它?
- ios - 从设置打开应用程序时如何检测授权状态是否更改
- windows - 加载DLL文件时,是否也调用了DLL文件的入口点?
- regex - 从字段中提取值
- mysql - 如何根据字符串列按降序对数据进行排序?
- ios - UITableViewCell 高度变化时闪烁