|
package utils
|
|
|
|
import (
|
|
model "LAPP_ETL/models/etl"
|
|
"fmt"
|
|
"github.com/go-xorm/xorm"
|
|
)
|
|
|
|
|
|
func GetTablePK(engine *xorm.Engine, tableName string) ([]string, error) {
|
|
pkList := make([]string, 0)
|
|
//获取当前导入表的主键
|
|
err := engine.SQL("SELECT COLUMN_NAME as ColumnName FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME=?", tableName).Find(&pkList)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return pkList, nil
|
|
}
|
|
|
|
|
|
|
|
func GetTableField(engine *xorm.Engine, tableName string) (fieldLi []model.TableField, err error) {
|
|
fieldLi = make([]model.TableField, 0)
|
|
sql := fmt.Sprintf(`SELECT syscolumns.name as fieldName,systypes.name as fieldType,syscolumns.isnullable as isNull, syscolumns.length FROM syscolumns,systypes WHERE syscolumns.xusertype = systypes.xusertype AND syscolumns.id = object_id ( '%s' )`, tableName)
|
|
err = engine.SQL(sql).Find(&fieldLi)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return fieldLi, nil
|
|
}
|
|
|