Pular para o conteúdo
Visualizando 7 posts - 1 até 7 (de 7 do total)
  • Autor
    Posts
  • #86845
    rtsilva
    Participante

      Boa 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.

      #86847
      Rodrigo Mesquita
      Participante

        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

        #86856
        David Siqueira
        Participante

          Ae 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 on

          Abraço.

          David

          #86859
          Rodrigo Mesquita
          Participante

            Valeu 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.

            #86860
            David Siqueira
            Participante

              Verdade 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…hehehehe

              Abraço.

              David

              #86892
              ebp_78
              Participante

                Rodrigo , 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]

                #86935
                Anô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?

                Visualizando 7 posts - 1 até 7 (de 7 do total)
                • Você deve fazer login para responder a este tópico.