GORM 支持的标签
- column: 定义列名,默认值为字段名
- type: 定义列的数据类型,默认会自动匹配 Go 类型和数据库类型
- size: 定义列的大小,如 varchar(100) 中的 100
- primaryKey: 标记为主键
- autoIncrement: 标记为自增长
- default: 定义默认值
- not null: 定义字段不可为 null
- unique: 定义字段为唯一值
- index: 定义索引
- uniqueIndex: 定义唯一索引
- precision: 定义精度
- scale: 定义小数位数
- embedded: 嵌入结构体,可以将结构体的字段映射到当前表中
- size: 定义列大小
- comment: 定义列注释
- default: 定义列默认值
GORM模型标签使用例子
通过在struct字段后面,使用gorm:"标签内容"
语法定义标签
type User struct {
// 设置为主键且自增
ID int64 `gorm:"primaryKey;autoIncrement"`
// 唯一约束、不能为空、长度为255
Name string `gorm:"unique;not null;size:255"`
// 唯一约束、不能为空、长度为255
Email string `gorm:"unique;not null;size:255"`
// 不能为空,设置默认值为当前时间戳
CreatedAt time.Time `gorm:"not null;default:CURRENT_TIMESTAMP"`
}