econz icon

Firebird - Listar Índices Duplicados

econz | PRO | 05/15/15 12:38:36 PM UTC | 0 ⭐ | 679 👁️ | Never ⏰ | []
SQL |

990 B

|

None

|

0 👍

/

0 👎

SELECT
   A.RDB$INDEX_NAME AS INDICE_1,
   B.RDB$INDEX_NAME AS INDICE_2
 
FROM RDB$INDICES A
 
INNER JOIN RDB$INDICES B ON
   A.RDB$RELATION_NAME = B.RDB$RELATION_NAME AND
   A.RDB$INDEX_NAME    < B.RDB$INDEX_NAME
 
WHERE
   A.RDB$SEGMENT_COUNT = B.RDB$SEGMENT_COUNT AND
   COALESCE(A.RDB$UNIQUE_FLAG, 0) = COALESCE(B.RDB$UNIQUE_FLAG, 0) AND
   COALESCE(A.RDB$INDEX_TYPE,  0) = COALESCE(B.RDB$INDEX_TYPE,  0) AND
   ( A.RDB$EXPRESSION_BLR=B.RDB$EXPRESSION_BLR
      OR
     A.RDB$SEGMENT_COUNT = ( SELECT
                                COUNT(*)
                             FROM RDB$INDEX_SEGMENTS AA
                             INNER JOIN RDB$INDEX_SEGMENTS BB ON
                                 AA.RDB$FIELD_POSITION=BB.RDB$FIELD_POSITION AND
                                 AA.RDB$FIELD_NAME=BB.RDB$FIELD_NAME AND
                                 AA.RDB$INDEX_NAME=A.RDB$INDEX_NAME AND
                                 BB.RDB$INDEX_NAME=B.RDB$INDEX_NAME
                           )
   )

Comments