| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package model
- import (
- "github.com/tal-tech/go-zero/core/stores/sqlx"
- )
- type (
- InformationSchemaModel struct {
- conn sqlx.SqlConn
- }
- Column struct {
- Name string `db:"COLUMN_NAME"`
- DataType string `db:"DATA_TYPE"`
- Key string `db:"COLUMN_KEY"`
- Extra string `db:"EXTRA"`
- Comment string `db:"COLUMN_COMMENT"`
- ColumnDefault interface{} `db:"COLUMN_DEFAULT"`
- IsNullAble string `db:"IS_NULLABLE"`
- }
- )
- func NewInformationSchemaModel(conn sqlx.SqlConn) *InformationSchemaModel {
- return &InformationSchemaModel{conn: conn}
- }
- func (m *InformationSchemaModel) GetAllTables(database string) ([]string, error) {
- query := `select TABLE_NAME from TABLES where TABLE_SCHEMA = ?`
- var tables []string
- err := m.conn.QueryRows(&tables, query, database)
- if err != nil {
- return nil, err
- }
- return tables, nil
- }
- func (m *InformationSchemaModel) FindByTableName(db, table string) ([]*Column, error) {
- querySql := `select COLUMN_NAME,COLUMN_DEFAULT,IS_NULLABLE,DATA_TYPE,COLUMN_KEY,EXTRA,COLUMN_COMMENT from COLUMNS where TABLE_SCHEMA = ? and TABLE_NAME = ?`
- var reply []*Column
- err := m.conn.QueryRows(&reply, querySql, db, table)
- return reply, err
- }
|