侧边栏壁纸
  • 累计撰写 71 篇文章
  • 累计创建 87 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

gorm如何获取表的所有字段的信息,包括comment

KunkkaWu
2024-01-19 / 0 评论 / 0 点赞 / 3,739 阅读 / 197 字 / 正在检测是否收录...

解决方案

db.Raw("show full columns from xxx ").Scan(&result)

获取表的详细信息

var result []utils.Column
showSql := fmt.Sprintf("show full columns from %s", in.TableName)
if err = db.Raw(showSql).Scan(&result).Error; err != nil {
    l.Logger.Errorf("requestId: [%s], show full columns from %s: err: %s", in.RequestId, in.TableName, err.Error())
    return &registration.GetTableColumnsResp{
        Code: int32(code.ErrDBConnShowTable),
        Msg:  code.ErrDBConnShowTable.String(),
    }, nil
}

Column 结构体定义

// Column 结构体表示表的列信息
type Column struct {
    Field      string `json:"Field"`      // 列名
    Type       string `json:"Type"`       // 数据类型
    Null       string `json:"Null"`       // 是否为空
    Key        string `json:"Key"`        // 主键类型
    Default    string `json:"Default"`    // 默认值
    Extra      string `json:"Extra"`      // 额外信息
    Privileges string `json:"Privileges"` // 权限信息
    Comment    string `json:"Comment"`    // 注释信息
}

0

评论区