Re: [firebase-br] Sobre chaves primárias e tabelas de sistema

Jeferson Oliveira jefersonfoliveira em gmail.com
Sex Jan 19 17:57:07 -03 2007


Se deseja obter informações sobre as chaves (primárias ou não) deve
consutlar a tabela de sistema RDB$RELATION_CONSTRAINTS. No entanto, se
deseja saber mais sobre a chave, como quais campos a compõe e a
sequência dos campos, será necessário relacionar tabelas que armazenam
os índices (RDB$INDICES) e os campos que compõe cada índice
(RDB$INDEX_SEGMENTS).

Abaixo um exemplo:

select RC.RDB$CONSTRAINT_NAME as NOME_PK,
       RC.RDB$RELATION_NAME as TABELA,
       IDX_S.RDB$FIELD_NAME as CAMPO,
       RC.RDB$INDEX_NAME as NOME_INDICE,
       IDX.RDB$INDEX_TYPE
from RDB$RELATION_CONSTRAINTS RC, RDB$INDEX_SEGMENTS IDX_S, RDB$INDICES IDX
where (IDX_S.RDB$INDEX_NAME = RC.RDB$INDEX_NAME)
  and (IDX.RDB$INDEX_NAME = RC.RDB$INDEX_NAME)
  and (RC.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY')
  and (RC.RDB$RELATION_NAME = :NOME_TABELA)
order by IDX_S.RDB$FIELD_POSITION


Abraço!
Jeferson Oliveira




Mais detalhes sobre a lista de discussão lista