Pular para o conteúdo
  • Este tópico contém 6 respostas, 7 vozes e foi atualizado pela última vez 17 anos atrás por David Siqueira.
Visualizando 7 posts - 1 até 7 (de 7 do total)
  • Autor
    Posts
  • #76161
    Anônimo

      Fui dar um drop em uma tabela e a mesma apresentou o seguinte erro:

      “unique/primary keys in table referenced by foreign keys”,

      alguém sabe como resolver isso???? essa tabela pode ser dropada???

      #76166
      hteles
      Participante

        o problema é o seguinte, existem outras tabelas que dependem dessa que vc quer deletar.
        tente fazer o seguinte:

        drop table table_name cascade constraints;

        acredito que assim deleta a tabela!

        abraços

        #77105
        drumond
        Participante

          bom se vc quiser saber qual sao as tabelas dependentes antes de apagar ai vai uma query :
          select table_name, lower(column_name)
          from user_tab_columns
          where column_name = UPPER(‘NOME_COLUNA’)

          #85551
          JamirJr
          Participante

            Precisei excluir alguns registros, mas eles estavam em uso em outras tabelas, então precisei disso:

            SELECT ‘select ”’|| A.TABLE_NAME ||”’ from ‘|| A.OWNER ||’.’|| A.TABLE_NAME ||’ where ‘|| COLUMN_NAME ||’ = 12345;’
            FROM dba_constraints a, dba_cons_columns b
            WHERE a.constraint_name = b.constraint_name
            AND r_constraint_name = ‘XPTO_PK’

            onde 12345 = valor que eu precisava excluir
            XPTO = nome da contraint, chave da tabela de onde eu deveria excluir os registros, ex: fornecedor_pk, funcionario_pk, etc
            Este select vai me dar varios selects, os quais usam a minha constraint.

            e depois isso:

            SELECT ‘UPDATE ‘|| A.OWNER ||’.’|| A.TABLE_NAME ||’ SET ‘|| COLUMN_NAME ||’ = 12345 WHERE ‘ || COLUMN_NAME || ‘= 54321;’
            FROM dba_constraints a, dba_cons_columns b
            WHERE a.constraint_name = b.constraint_name
            AND r_constraint_name = ‘XPTO_PK’

            #85560
            Marcio68Almeida
            Participante

              Bom…

              Quando o banco diz que não pode fazer alguma coisa, neste caso remover uma tabela, é por que existe uma consistência que merece atenção.
              Antes de simplesmente remover as consistências, verifique o por que elas existem…

              Você pode remover a constraint com DROP CONSTRAINT

              #85566
              Rodrigo Almeida
              Participante

                Exato, como o Marcio disse.

                Se existe PK e FKS nas tabelas, porque fazem integridade dos dados e usualmente parte da modelagem dos dados para alguma regra de negócio, então, veja se a tabela não terá impactos no aplicativo e na modelo de dados.

                OBS: Se não trazer impactos, DROP TABLE CASCADE CONSTRAINTS; –> funciona que é uma beleza.

                Abraços,
                Rodrigo Almeida

                #85573
                David Siqueira
                Participante

                  Reforçando as orientações do Alphamek e do Marcio, gere um DDL da tabela, exporte os dados como garantia, verifique as dependencias e se estiver tudo ok e sem restrições lasca o DROP que funciona!!!..rs!

                  Abcs.

                  David

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