mirror of
https://gitee.com/dromara/mayfly-go
synced 2025-11-03 16:00:25 +08:00
fix: 支持达梦数据库查询索引
This commit is contained in:
@@ -136,7 +136,7 @@ func (pd *DMDialect) GetTableIndex(tableName string) ([]Index, error) {
|
|||||||
indexs = append(indexs, Index{
|
indexs = append(indexs, Index{
|
||||||
IndexName: re["indexName"].(string),
|
IndexName: re["indexName"].(string),
|
||||||
ColumnName: anyx.ConvString(re["columnName"]),
|
ColumnName: anyx.ConvString(re["columnName"]),
|
||||||
IndexType: anyx.ConvString(re["IndexType"]),
|
IndexType: anyx.ConvString(re["indexType"]),
|
||||||
IndexComment: anyx.ConvString(re["indexComment"]),
|
IndexComment: anyx.ConvString(re["indexComment"]),
|
||||||
NonUnique: anyx.ConvInt(re["nonUnique"]),
|
NonUnique: anyx.ConvInt(re["nonUnique"]),
|
||||||
SeqInIndex: anyx.ConvInt(re["seqInIndex"]),
|
SeqInIndex: anyx.ConvInt(re["seqInIndex"]),
|
||||||
|
|||||||
@@ -15,19 +15,20 @@ where a.owner = (SELECT SF_GET_SCHEMA_NAME_BY_ID(CURRENT_SCHID))
|
|||||||
and a.object_type = 'TABLE'
|
and a.object_type = 'TABLE'
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
--DM_INDEX_INFO 表索引信息
|
--DM_INDEX_INFO 表索引信息
|
||||||
SELECT
|
select
|
||||||
indexname AS "indexName",
|
a.index_name as indexName,
|
||||||
'BTREE' AS "IndexType",
|
a.index_type as indexType,
|
||||||
case when indexdef like 'CREATE UNIQUE INDEX%%' then 0 else 1 end as "nonUnique",
|
case when a.uniqueness = 'UNIQUE' then 1 else 0 end as nonUnique,
|
||||||
obj_description(b.oid, 'pg_class') AS "indexComment",
|
indexdef(b.object_id,1) as indexDef,
|
||||||
indexdef AS "indexDef",
|
c.column_name as columnName,
|
||||||
c.attname AS "columnName",
|
c.column_position as seqInIndex,
|
||||||
c.attnum AS "seqInIndex"
|
'无' as indexComment
|
||||||
FROM pg_indexes a
|
FROM DBA_INDEXES a
|
||||||
join pg_class b on a.indexname = b.relname
|
JOIN dba_objects b on a.owner = b.owner and b.object_name = a.index_name and b.object_type = 'INDEX'
|
||||||
join pg_attribute c on b.oid = c.attrelid
|
JOIN DBA_IND_COLUMNS c on a.owner = c.table_owner and a.index_name = c.index_name and a.TABLE_NAME = c.table_name
|
||||||
WHERE a.schemaname = (select current_schema())
|
|
||||||
AND a.tablename = '%s';
|
WHERE a.owner = (SELECT SF_GET_SCHEMA_NAME_BY_ID(CURRENT_SCHID)) and a.TABLE_NAME = '%s'
|
||||||
|
order by a.TABLE_NAME, a.index_name, c.column_position asc
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
--DM_COLUMN_MA 表列信息
|
--DM_COLUMN_MA 表列信息
|
||||||
select a.table_name as tableName,
|
select a.table_name as tableName,
|
||||||
|
|||||||
Reference in New Issue
Block a user