Oracle以及PG中将指定用户的primary,unique索引按照指定格式输出

--- Oracle

SELECT
    LOWER(c.table_name) || ':' || LOWER(i.index_name) || ':' || LOWER(wm_concat(c.column_name)) AS output
FROM
    all_indexes i
JOIN
    all_ind_columns c ON i.index_name = c.index_name AND i.table_name = c.table_name AND i.table_owner = c.table_owner
WHERE
    i.owner = 'SIT'
    AND (i.index_type = 'NORMAL' OR i.index_type = 'UNIQUE')
    AND i.table_owner = 'SIT'
GROUP BY
    c.table_name, i.index_name;

--- PG

SELECT
    LOWER(t.table_name) || ':' || LOWER(i.indexname) || ':' || LOWER(string_agg(a.attname, ',')) AS output
FROM
    pg_indexes i
JOIN
    pg_class c ON i.indexname = c.relname
JOIN
    pg_attribute a ON c.oid = a.attrelid AND i.indexrelid = a.attnum
JOIN
    information_schema.tables t ON c.relname = t.table_name
WHERE
    t.table_schema = 'SIT'
    AND (i.indexdef ILIKE 'PRIMARY%' OR i.indexdef ILIKE 'UNIQUE%')
GROUP BY
    t.table_name, i.indexname;

posted @   DBAGPT  阅读(8)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示