gopkg/tool/sql2go/parser.go

44 lines
915 B
Go

// Package sql2go...
//
// Description : sql2go...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2021-10-25 4:49 下午
package sql2go
import (
"fmt"
"strings"
"github.com/xwb1989/sqlparser"
)
// ParseCreateTableSql 解析建表sql
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 4:49 下午 2021/10/25
func ParseCreateTableSql(sql string) {
var (
stmt sqlparser.Statement
err error
)
sql = strings.ReplaceAll(sql, " ", "")
if stmt, err = sqlparser.ParseStrictDDL(sql); nil != err {
fmt.Println(err.Error(), string(sql[786:]))
return
}
r := stmt.(*sqlparser.DDL)
for _, item := range r.TableSpec.Columns {
defaultV := item.Type.Default
defaultVal := "-"
if nil != defaultV {
defaultVal += string(defaultV.Val) + "-"
}
fmt.Println(item.Name.String(), defaultVal, item.Type.NotNull, string(item.Type.Comment.Val))
}
// fmt.Println(r.TableSpec)
}