1
resposta

ACIDENTE

Olá,

Ao realizar o desafio proposto e realizar a alteração do endereço, acabei esquecendo de utilizar o WHERE e alterei a tabela inteira.

Para tentar solucionar o problema, apaguei a FK que estava fazendo referencia a tabela de CLIENTES e logo depois apaguei a tabela de CLIENTES para poder refazer toda a criação da tabela novamente.

Consegui recriar a tabela novamente, mas ao tentar adiconar a FK novamente, aparece a seguinte mensagem:

''A instrução ALTER TABLE conflitou com a restrição do FOREIGN KEY "FK_CLIENTES". O conflito ocorreu no banco de dados "VENDAS SUCOS", tabela "dbo.CLIENTES", column 'CPF'.''

1 resposta

Olá Patrick, tudo bem?

O que pode estar gerando esse comportamento, é que pode ainda conter registros na tabela referenciada (neste caso, a tabela que contém a chave estrangeira) que não correspondem a registros na tabela principal.

Por exemplo, se você tem uma tabela de VENDAS que tem uma chave estrangeira que referencia a tabela de CLIENTES, e existem registros na tabela de VENDAS que não têm um correspondente na tabela de CLIENTES, você não poderá criar a chave estrangeira.

Patrick, então neste caso peço que faça algumas verificações:

  • Verificar se existem registros na tabela que contém a chave estrangeira (por exemplo, caso queira identificar a tabela VENDAS) que não têm um correspondente na tabela de CLIENTES. O comando seria:

    SELECT * FROM TabelaVendas
    WHERE CPF NOT IN (SELECT CPF FROM CLIENTES);
    
  • Se a consulta retornar algum registro, isso significa que existem registros na tabela de VENDAS que não têm um correspondente na tabela de CLIENTES.

  • Após resolver os registros conflitantes, tente criar a chave estrangeira novamente.

Caso o problema persista, fico à disposição para tentar solucionar

Espero ter ajudado.

Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software