//示意代码
type TableX struct {
...
...
// table name
TblName string `gorm:"-"`
}
func (v TableX) TableName() string {
return v.TblName
}
func NewTableX(tblname string) *TableX {
return &TableX{TblName: tblname}
}
// 创建表
func create() {
db * gorm.DB
m := NewTableX("tablename")
db.CreateTable(m)
}
//指定表名查询, 对TblName 进行赋值
func query(tblName string) {
db * gorm.DB
var items []TableX
db.Table(tblName).Where(&TableX{..., TblName: tblName}).Where(......).Find(&items)
}
// 查询数据库中所有表名
func queryAllTblName() []string {
sqlStr := fmt.Sprintf("select table_name from information_schema.tables where table_schema='public'"+
" And table_name like '%s%%';", 表名前缀)
rows, err := dao.DB().Query(sqlStr)
if err != nil {
logging.GetLogger().Errorf("%s failed. err:%s", sqlStr, err.Error())
return nil
}
var results []string
for rows.Next() {
var tblName string
err := rows.Scan(&tblName)
if err != nil {
logging.GetLogger().Infof("Sacn table failed, err:%+s", err.Error())
} else {
results = append(results, tblName)
}
}
return results
}