1 Star 0 Fork 0

leminewx/dborm

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
table.go 1.45 KB
一键复制 编辑 原始数据 按行查看 历史
wenxian 提交于 2024-11-22 10:08 +08:00 . v1.0.1.0
package session
import (
"fmt"
"reflect"
"gitee.com/leminewx/dborm/schema"
)
// WithModel 指定数据表模型
func (own *Session) WithModel(model any) *Session {
if own.schema == nil || reflect.TypeOf(model) != own.schema.ModelType {
own.schema = schema.Parse(own.dialect, model)
own.statement.WithTableName(own.schema.Name)
}
return own
}
// GetSchema 获取数据表信息
func (own *Session) GetSchema() (*schema.Schema, error) {
if own.schema == nil {
return nil, fmt.Errorf("dborm: no data model specified")
}
if len(own.schema.Columns) == 0 {
return nil, fmt.Errorf("dborm: no exportable fields in data model")
}
return own.schema, nil
}
// CreateTable 创建数据表
func (own *Session) CreateTable(engine ...string) error {
schema, err := own.GetSchema()
if err != nil {
return err
}
sql := own.dialect.GenerateCreatingTableSQL(schema.Name, schema.Columns, engine...)
_, err = own.Exec(sql)
return err
}
// DropTable 删除数据表
func (own *Session) DropTable() error {
schema, err := own.GetSchema()
if err != nil {
return err
}
_, err = own.Exec("DROP TABLE IF EXISTS " + schema.Name + ";")
return err
}
// IsExistTable 检查数据表是否存在
func (own *Session) IsExistTable() bool {
schema, err := own.GetSchema()
if err != nil {
return false
}
sql := own.dialect.GenerateQueryingTableSQL(own.dbName, schema.Name)
row := own.QueryRow(sql)
var tmp string
_ = row.Scan(&tmp)
return tmp == schema.Name
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/leminewx/dborm.git
git@gitee.com:leminewx/dborm.git
leminewx
dborm
dborm
803ac38b7c46

搜索帮助