- Este tópico contém 6 respostas, 5 vozes e foi atualizado pela última vez 16 anos, 10 meses atrás por
Anônimo.
-
AutorPosts
-
20 de maio de 2009 às 8:57 pm #86845
rtsilva
ParticipanteBoa tarde,
Pessoal alguém pode me ajudar? Gostaria de saber quais tabelas não possuem chaves primárias em um bd através de script.
Desde já agradeço,
Robson.
20 de maio de 2009 às 9:15 pm #86847Rodrigo Mesquita
ParticipanteFaça o seguinte select
SELECT TABLE_NAME
FROM USER_TABLES T
WHERE T.TABLE_NAME NOT IN
(select TABLE_NAME
from user_constraints C
where CONSTRAINT_TYPE = ‘P’)lembre-se de estar conectado no usuário do qual deseja consultar
20 de maio de 2009 às 11:59 pm #86856David Siqueira
ParticipanteAe Silva e Rodrigão Salve, segue um script que uso a um tempo já:
accept tb prompt "Tabela ou (Enter)=Todas.....................: "
accept cn prompt "Nome da constraint ou (Enter)=Todas.........: "
accept st prompt "Lista (E)=Enabled,(D)=Disabled,(Enter)=Todos: "
accept pr prompt "Proprietario ou (All)=Todos, (Enter)=Usuario: "
set ver off
col table_name format a25 wra
col constraint_name format a25 wra
col delete_rule format a11 heading 'DELETE_RULE'
select table_name, constraint_name, constraint_type, delete_rule, status
from all_constraints
where owner like decode(upper('&pr'),'ALL','%',NULL,USER,upper('&pr'))
and table_name like nvl(upper('&tb'),'%')
and constraint_name like nvl(upper('&cn'),'%')
and (status = decode(upper('&st'),'D','DISABLED','E','ENABLED')
or '&st' is null);clear col
set ver onAbraço.
David
21 de maio de 2009 às 12:14 am #86859Rodrigo Mesquita
ParticipanteValeu David….Muito bom esse script…vou copia-lo para o meu diretorio do sqlplus. hehe
Só que nesse caso eu consulto as constraints de uma tabela ou de todas, dependendo do parametro. Pelo que vi não daria para verificar as tabelas que não possuem PK.21 de maio de 2009 às 12:20 am #86860David Siqueira
ParticipanteVerdade eu customizei a um tempo, tinha a opção de passar tipo como parametro também, mais acreito que eu tenha mandado sem essa alteração..hehehe..foi mal…rsss…
VocÊ tem razão.
Nesse caso sua consulta é mais eficiente…heheheheAbraço.
David
22 de maio de 2009 às 7:09 pm #86892ebp_78
ParticipanteRodrigo , bom dia ,
Me tire uma dúvida , posso criar um índice para uma
tabela que não possoui chave primária?Edinaldo
[quote=”RodrigoMesquita”:3kusqo2c]Faça o seguinte select
SELECT TABLE_NAME
FROM USER_TABLES T
WHERE T.TABLE_NAME NOT IN
(select TABLE_NAME
from user_constraints C
where CONSTRAINT_TYPE = ‘P’)lembre-se de estar conectado no usuário do qual deseja consultar[/quote]
25 de maio de 2009 às 7:15 pm #86935Anônimo
Bom Dia.
É possivel vc criar indice sim, porem é melhor que vc cria as tabelas com Primary key e Foreign Key pois são indices que ajudam na hora de consultar os dados, imagine um milhão de indomações em uma tabela sem PK e vc que consultar um dos ultimos sem indice ele vai passar linha a linha até encontrar, isso vai emorar um eternidade.Você tem muitas tabelas sem PK?
-
AutorPosts
- Você deve fazer login para responder a este tópico.