获取pg列时按ordinal排序
This commit is contained in:
@@ -361,8 +361,34 @@ public class DataBaseManager : IDataBaseManager, ITransient
|
||||
{
|
||||
if (link != null && _sqlSugarClient.CurrentConnectionConfig.ConfigId != link.Id) _sqlSugarClient = ChangeDataBase(link);
|
||||
|
||||
var list = _sqlSugarClient.DbMaintenance.GetColumnInfosByTableName(tableName, false);
|
||||
return list.Adapt<List<DbTableFieldModel>>();
|
||||
List<DbTableFieldModel> list;
|
||||
if (link.DbType == SqlSugar.DbType.PostgreSQL.ToString())
|
||||
{
|
||||
var sql = @"SELECT pcolumn.table_name AS tableName,pcolumn.column_name AS field,pcolumn.udt_name AS dataType,
|
||||
pcolumn.column_default as defaults,col_description(pclass.oid, pcolumn.ordinal_position) AS fieldName,
|
||||
CASE WHEN pcolumn.numeric_scale>0 THEN pcolumn.numeric_precision ELSE COALESCE(pcolumn.character_maximum_length,0) END AS dataLength,
|
||||
CASE WHEN pcolumn.is_nullable = 'YES' THEN 1 ELSE 0 END AS allowNull,
|
||||
CASE WHEN pcolumn.column_default LIKE 'nextval%' THEN true ELSE false END AS identity,
|
||||
CASE WHEN pkey.colname = pcolumn.column_name THEN true ELSE false END AS primaryKey
|
||||
FROM information_schema.columns pcolumn
|
||||
INNER JOIN pg_class pclass ON pcolumn.table_name = pclass.relname
|
||||
LEFT JOIN (
|
||||
SELECT pg_class.relname,pg_attribute.attname AS colname FROM
|
||||
pg_constraint INNER JOIN pg_class
|
||||
ON pg_constraint.conrelid = pg_class.oid
|
||||
INNER JOIN pg_attribute ON pg_attribute.attrelid = pg_class.oid
|
||||
and pg_attribute.attnum = pg_constraint.conkey[1]
|
||||
INNER JOIN pg_type ON pg_type.oid = pg_attribute.atttypid
|
||||
where pg_constraint.contype='p'
|
||||
) pkey ON pcolumn.table_name = pkey.relname
|
||||
WHERE pcolumn.table_name='{0}' ORDER BY ordinal_position";
|
||||
list = _sqlSugarClient.SqlQueryable<DbTableFieldModel>(string.Format(sql, tableName)).ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
list = _sqlSugarClient.DbMaintenance.GetColumnInfosByTableName(tableName, false).Adapt<List<DbTableFieldModel>>();
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -435,7 +461,8 @@ public class DataBaseManager : IDataBaseManager, ITransient
|
||||
var data = new DatabaseTableInfoOutput()
|
||||
{
|
||||
tableInfo = _sqlSugarClient.DbMaintenance.GetTableInfoList(false).Find(m => m.Name == tableName).Adapt<TableInfoOutput>(),
|
||||
tableFieldList = _sqlSugarClient.DbMaintenance.GetColumnInfosByTableName(tableName, false).Adapt<List<TableFieldOutput>>()
|
||||
tableFieldList = GetFieldList(link, tableName).Adapt<List<TableFieldOutput>>()
|
||||
//tableFieldList = _sqlSugarClient.DbMaintenance.GetColumnInfosByTableName(tableName, false).Adapt<List<TableFieldOutput>>()
|
||||
};
|
||||
|
||||
data.tableFieldList = ViewDataTypeConversion(data.tableFieldList, _sqlSugarClient.CurrentConnectionConfig.DbType);
|
||||
|
||||
Reference in New Issue
Block a user