Olá pessoal,
Alguém poderia me responder como eu faço para localizar todas as FK's de uma determinada tabela no banco de dados? Como saída eu queria o nome da tabela e o nome da coluna que tem a FK.
Att,
Localizar FK's de uma determinada tabela no Banco?
- stcoutinho
- Moderador
- Mensagens: 850
- Registrado em: Qua, 11 Mai 2011 5:15 pm
- Localização: são Paulo - SP
Olá wbarrence,
Use estas queries para obter as informações desejadas:
Se por acaso você não tiver acesso às views DBA, você pode se conectar como o próprio usuário e executar as queries a seguir:
Abraços,
Sergio Coutinho
Use estas queries para obter as informações desejadas:
--- Esta querie mostra todas as FKs de uma Tabela
SELECT TABLE_NAME,
CONSTRAINT_NAME
FROM DBA_CONSTRAINTS
WHERE OWNER = '<NOME_DONO_TABELA_EM_MAIUSCULAS>'
AND TABLE_NAME = '<NOME_TABELA_EM_MAIUSCULAS>'
AND CONSTRAINT_TYPE = 'R'
ORDER BY 1,2;
--- Esta querie mostra todas as FKs de uma tabela e as colunas que compoe cada uma delas
--- Lembrando que uma FK pode ser composta por mais de uma coluna
SELECT CONSTRAINT_NAME,COLUMN_NAME,POSITION
FROM DBA_CONS_COLUMNS
WHERE CONSTRAINT_NAME IN
(SELECT CONSTRAINT_NAME
FROM DBA_CONSTRAINTS
WHERE OWNER = '<NOME_DONO_TABELA_EM_MAIUSCULAS>'
AND TABLE_NAME = '<NOME_TABELA_EM_MAIUSCULAS>'
AND CONSTRAINT_TYPE = 'R')
ORDER BY 1,2;
--- Esta querie mostra todas as FKs de uma Tabela
SELECT TABLE_NAME,
CONSTRAINT_NAME
FROM USER_CONSTRAINTS
WHERE TABLE_NAME = '<NOME_TABELA_EM_MAIUSCULAS>'
AND CONSTRAINT_TYPE = 'R'
ORDER BY 1,2;
--- Esta querie mostra todas as FKs de uma tabela e as colunas que compoe cada uma delas
--- Lembrando que uma FK pode ser composta por mais de uma coluna
SELECT CONSTRAINT_NAME,COLUMN_NAME,POSITION
FROM USER_CONS_COLUMNS
WHERE CONSTRAINT_NAME IN
(SELECT CONSTRAINT_NAME
FROM USER_CONSTRAINTS
WHERE TABLE_NAME = '<NOME_TABELA_EM_MAIUSCULAS>'
AND CONSTRAINT_TYPE = 'R')
ORDER BY 1,2;
Sergio Coutinho
- wbarrence
- Rank: Programador Sênior
- Mensagens: 55
- Registrado em: Qui, 06 Out 2011 10:30 am
- Localização: SP
--
WABS
WABS
Olá Sergio,
Primeiramente eu quero agradecer a sua ajuda, saliento que você ajudou bastante aqui no trabalho.
Só fiquei com uma dúvida, o que significa o 'R' do CONSTRAINT_TYPE = 'R'? E quais o valores esse campo pode assumir?
Att,
Primeiramente eu quero agradecer a sua ajuda, saliento que você ajudou bastante aqui no trabalho.
Só fiquei com uma dúvida, o que significa o 'R' do CONSTRAINT_TYPE = 'R'? E quais o valores esse campo pode assumir?
Att,
- gpereira
- Rank: Programador Sênior
- Mensagens: 61
- Registrado em: Sáb, 10 Dez 2011 10:56 am
Gustavo Antonio Pereira
OCA Oracle Database 10g Administrator Certified Associate
OCA Oracle Database 10g Administrator Certified Associate
Oi amigo.
"R" de "Referential", ou seja, é uma CONSTRAINT do tipo FK !
Para os valores, pelo o que sei pode receber valores abaixo:
C = Check
P = Primary Key
R = Foreign Key
U = Unique Key
O = READ ONLY em uma VIEW
V = Check em uma VIEW
Corrijam-me se estiver errado.
Abraços.
"R" de "Referential", ou seja, é uma CONSTRAINT do tipo FK !
Para os valores, pelo o que sei pode receber valores abaixo:
C = Check
P = Primary Key
R = Foreign Key
U = Unique Key
O = READ ONLY em uma VIEW
V = Check em uma VIEW
Corrijam-me se estiver errado.
Abraços.
Galera..retornando o assunto, existe alguma maneira de mostrar o nome da tabela e o campo do usuário que está sendo referenciado na fk?
- dr_gori
- Moderador
- Mensagens: 5024
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Veja se essa query te ajuda:
http://glufke.net/oracle/viewtopic.php?t=883
http://glufke.net/oracle/viewtopic.php?t=883
-
- Rank: Estagiário Sênior
- Mensagens: 8
- Registrado em: Sex, 12 Out 2012 11:26 am
- Localização: Santa ROSA
- Contato:
Cristiano Schmitt
Administrador de Banco de Dados e Tecnologia
Administrador de Banco de Dados e Tecnologia
Coluna CHILD_TABLE, mostra qual tabela pertence a FK
SELECT
UC.CONSTRAINT_NAME CONSTRAINT_NAME,
UC.TABLE_NAME CHILD_TABLE,
UCC.COLUMN_NAME CHILD_COLUMN,
UCR.TABLE_NAME PARENT_TABLE,
UCCR.COLUMN_NAME PARENT_COLUMN
FROM USER_CONSTRAINTS UC
INNER JOIN USER_CONSTRAINTS UCR
ON UCR.CONSTRAINT_NAME = UC.R_CONSTRAINT_NAME
INNER JOIN USER_CONS_COLUMNS UCC
ON UCC.CONSTRAINT_NAME = UC.CONSTRAINT_NAME
AND UC.TABLE_NAME = UCC.TABLE_NAME
INNER JOIN USER_CONS_COLUMNS UCCR
ON UCCR.CONSTRAINT_NAME = UCR.CONSTRAINT_NAME
AND UCR.TABLE_NAME = UCCR.TABLE_NAME
AND UCCR.POSITION = UCC.POSITION
WHERE UCR.TABLE_NAME IN ('EMPLOYEES') --COLOCAR A TABELA PARA SER ANALISADA
AND UCR.CONSTRAINT_TYPE IN( 'P','U')
ORDER BY CHILD_TABLE, CONSTRAINT_NAME, CHILD_COLUMN
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 12 visitantes