获取pg列时按ordinal排序
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
"DBName": "tnb_bas",
|
"DBName": "tnb_bas",
|
||||||
"DBType": "PostgreSQL", //MySql;SqlServer;Oracle;PostgreSQL;Dm;Kdbndp;Sqlite;
|
"DBType": "PostgreSQL", //MySql;SqlServer;Oracle;PostgreSQL;Dm;Kdbndp;Sqlite;
|
||||||
"Host": "localhost",
|
"Host": "localhost",
|
||||||
"Port": "9202",
|
"Port": "5432",
|
||||||
"UserName": "totong",
|
"UserName": "totong",
|
||||||
"Password": "IPANyxGSKxIXg0dBM",
|
"Password": "IPANyxGSKxIXg0dBM",
|
||||||
//SqlServer
|
//SqlServer
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
//"DefaultConnection": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.19)(PORT=1521))(CONNECT_DATA=(SERVER = DEDICATED)(SERVICE_NAME=JNPFCLOUD)));User Id=JNPFCLOUD;Password=JNPFCLOUD"
|
//"DefaultConnection": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.19)(PORT=1521))(CONNECT_DATA=(SERVER = DEDICATED)(SERVICE_NAME=JNPFCLOUD)));User Id=JNPFCLOUD;Password=JNPFCLOUD"
|
||||||
//PostgreSQL
|
//PostgreSQL
|
||||||
//"DefaultConnection": "PORT=5432;DATABASE=java_boot_dev_postgresql;HOST=192.168.0.103;PASSWORD=123456;USER ID=postgres"
|
//"DefaultConnection": "PORT=5432;DATABASE=java_boot_dev_postgresql;HOST=192.168.0.103;PASSWORD=123456;USER ID=postgres"
|
||||||
"DefaultConnection": "server=localhost;port=9202;database=tnb_bas;uid=totong;pwd=IPANyxGSKxIXg0dBM;pooling=true;"
|
"DefaultConnection": "server=localhost;port=5432;database=tnb_bas;uid=totong;pwd=IPANyxGSKxIXg0dBM;pooling=true;"
|
||||||
//MySql
|
//MySql
|
||||||
//"DefaultConnection": "server=192.168.0.10;Database=netcore_test;Uid=netcore_test;Pwd=jhpGB3A88CF57fBC;AllowLoadLocalInfile=true"
|
//"DefaultConnection": "server=192.168.0.10;Database=netcore_test;Uid=netcore_test;Pwd=jhpGB3A88CF57fBC;AllowLoadLocalInfile=true"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -361,8 +361,34 @@ public class DataBaseManager : IDataBaseManager, ITransient
|
|||||||
{
|
{
|
||||||
if (link != null && _sqlSugarClient.CurrentConnectionConfig.ConfigId != link.Id) _sqlSugarClient = ChangeDataBase(link);
|
if (link != null && _sqlSugarClient.CurrentConnectionConfig.ConfigId != link.Id) _sqlSugarClient = ChangeDataBase(link);
|
||||||
|
|
||||||
var list = _sqlSugarClient.DbMaintenance.GetColumnInfosByTableName(tableName, false);
|
List<DbTableFieldModel> list;
|
||||||
return list.Adapt<List<DbTableFieldModel>>();
|
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>
|
/// <summary>
|
||||||
@@ -435,7 +461,8 @@ public class DataBaseManager : IDataBaseManager, ITransient
|
|||||||
var data = new DatabaseTableInfoOutput()
|
var data = new DatabaseTableInfoOutput()
|
||||||
{
|
{
|
||||||
tableInfo = _sqlSugarClient.DbMaintenance.GetTableInfoList(false).Find(m => m.Name == tableName).Adapt<TableInfoOutput>(),
|
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);
|
data.tableFieldList = ViewDataTypeConversion(data.tableFieldList, _sqlSugarClient.CurrentConnectionConfig.DbType);
|
||||||
|
|||||||
Reference in New Issue
Block a user