database/system.go
白茶清欢 ffb2a4608a 增加获取表结构的方法 + 单元测试
Author:  白茶清欢 <go_developer@163.com>
2022-05-16 11:49:05 +08:00

57 lines
1.1 KiB
Go

// Package mysql ...
//
// Description : mysql ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2022-05-15 19:32
package mysql
import (
"fmt"
"gorm.io/gorm"
)
// SystemDao 执行一些系统的mysql命令
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 19:32 2022/5/15
type SystemDao struct {
}
// GetTableList 查询数据表
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 19:36 2022/5/15
func (sd *SystemDao) GetTableList(dbInstance *gorm.DB) ([]string, error) {
var (
err error
result []string
)
if err = dbInstance.Raw("SHOW TABLES").Scan(&result).Error; nil != err {
return nil, err
}
return result, nil
}
// GetCreateTableSQL 获取建表SQL
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 20:58 2022/5/15
func (sd *SystemDao) GetCreateTableSQL(dbInstance *gorm.DB, table string) (string, error) {
var (
err error
result map[string]interface{}
)
if err = dbInstance.Raw("SHOW CREATE TABLE `" + table + "`").Scan(&result).Error; nil != err {
return "", err
}
return fmt.Sprintf("%v", result["Create Table"]), nil
}