当前位置:网站首页>Display all indexes of a table in Oracle

Display all indexes of a table in Oracle

2022-06-21 12:39:00 dingdingfish

this SQL come from Oracle SQL*Plus: The Definitive Guide, 2nd Edition, Only minor changes have been made :

COLUMN index_name FORMAT A20
COLUMN index_type FORMAT A10
COLUMN UNIQUENESS FORMAT A10
COLUMN column_name FORMAT A15

SELECT ai.index_name, ai.index_type, ai.uniqueness, aic.column_name
FROM dba_indexes ai INNER JOIN dba_ind_columns aic
     ON ai.owner = aic.index_owner
     AND ai.index_name = aic.index_name
WHERE ai.owner = '&owner'
  AND ai.table_name = UPPER('&table_name')
ORDER BY ai.index_name, aic.column_position;

The following is a running example :

old:SELECT ai.index_name, ai.index_type, ai.uniqueness, aic.column_name
FROM dba_indexes ai INNER JOIN dba_ind_columns aic
     ON ai.owner = aic.index_owner
     AND ai.index_name = aic.index_name
WHERE ai.owner = '&owner'
  AND ai.table_name = UPPER('&table_name')
ORDER BY ai.index_name, aic.column_position
new:SELECT ai.index_name, ai.index_type, ai.uniqueness, aic.column_name
FROM dba_indexes ai INNER JOIN dba_ind_columns aic
     ON ai.owner = aic.index_owner
     AND ai.index_name = aic.index_name
WHERE ai.owner = 'HR'
  AND ai.table_name = UPPER('employees')
ORDER BY ai.index_name, aic.column_position

INDEX_NAME           INDEX_TYPE UNIQUENESS COLUMN_NAME    
-------------------- ---------- ---------- ---------------
EMP_DEPARTMENT_IX    NORMAL     NONUNIQUE  DEPARTMENT_ID  
EMP_EMAIL_UK         NORMAL     UNIQUE     EMAIL          
EMP_EMP_ID_PK        NORMAL     UNIQUE     EMPLOYEE_ID    
EMP_JOB_IX           NORMAL     NONUNIQUE  JOB_ID         
EMP_MANAGER_IX       NORMAL     NONUNIQUE  MANAGER_ID     
EMP_NAME_IX          NORMAL     NONUNIQUE  LAST_NAME      
EMP_NAME_IX          NORMAL     NONUNIQUE  FIRST_NAME     

7 rows selected. 

原网站

版权声明
本文为[dingdingfish]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/172/202206211225353486.html