栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

golang-gorm自动建表

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

golang-gorm自动建表

定义结构体

设置主键、自增、和独立索引
联合索引用addindex

type User struct {
	//通过在字段后面的标签说明,定义golang字段和表字段的关系
	//例如 `gorm:"column:username"` 标签说明含义是: Mysql表的列名(字段名)为username
	//这里golang定义的Username变量和MYSQL表字段username一样,他们的名字可以不一样。
	Id int64 `gorm:"column:username;not null;type:int(4) primary key auto_increment;comment:'用户名'"`
	Password string `gorm:"column:password;type:varchar(30);index:idx_name"`
	//创建时间,时间戳
	CreateTime int64 `gorm:"column:createtime"`
}

定义变化的表名

全局变量

var TablePre = "2021"
实现interface
func (u *User) TableName() string{
	return "userss"+table
}
执行sql
dbSlaveClient, err := gorm.GetClient(xxxx)
	if err != nil {
		fmt.Println(err)
	}

	TablePre = "20210"
	err = dbSlaveClient.Model(&User{}).Debug().
		AutoMigrate(&User{}).
		AddIndex("idx_cr_pass","createtime","password").Error

判断是否有无
 if !dbSlaveClient.HasTable(&User{}) {
    dbSlaveClient.AutoMigrate(&User{})
    if dbSlaveClient.HasTable(&User{}) {
      fmt.Println("balance表创建成功")
    } else {
      fmt.Println("balance表创建失败")
    }
  } else {
    fmt.Println("表已存在")
  }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/906473.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号