LAPP标准接口程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
932 B

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
}