为字段设置默认值,需要使用 default 标签,定义默认值,例如:
type User struct {
ID uint `gorm:"not null;comment:'用户ID'"`
Name string `gorm:"type:varchar(50);default:'张三';comment:'姓名'"`
Age int `gorm:"default:'18';comment:'年龄'"`
}
上面的语句在使用 gorm 的自动迁移时会自动创建 User 表,相当于自动执行了下面的 SQL 语法:
CREATE TABLE `user` (
`id` int unsigned NOT NULL COMMENT '用户ID',
`name` varchar(50) DEFAULT '张三' COMMENT '姓名',
`age` int DEFAULT '18' COMMENT '年龄',
)
使用上面的语句完成数据库迁移,创建 User 表。
表创建完成后,在给 User 表添加数据的过程中,但凡 Name 字段和 Age字段的值为 "" 或 0 时,数据库自动使用默认值:张三 和 18 替换 "" 或 0。
参考官方文档:创建 | GORM - The fantastic ORM library for Golang, aims to be developer friendly.
注意:如果给字段设置了“默认值”,任何零值(如0、""、false)都不会保存到数据库中,创建数据到数据库时遇到零值时将自动替换使用默认值。