1
resposta

[Sugestão] NOTAS Não importado, dados não inseriveis - Solução e Dúvida.

1 Quando tentei excluir as notas fiscais (Apenas o cabeçalho) cujos clientes tenham a idade menor ou igual a 18 anos, deu erro.

2 Ao verificar percebi que não havia dados em "NOTAS".

3 Tentei importar o CSV conforme o professor ensinou em "VENDEDORES" e necas; (0 rows affected, 0 Records ...)

4 Usei o comando seguite para inserir através da tabela base em "SUCOS_VENDAS" deu erro por conta de existir uma Chave Estrangeira (Foreign Key) unindo VENDEDORES e portanto não é possível altera-la. INSERT INTO NOTAS (NUMERO, DATA_VENDA, CPF, MATRICULA, IMPOSTO) SELECT NUMERO, DATA_VENDA, CPF, MATRICULA, IMPOSTO FROM SUCOS_VENDAS.notas_fiscais WHERE CPF NOT IN (SELECT CPF FROM NOTAS);

5 Achei uma solução "Band Aid" excluindo a FK com o comando: ALTER TABLE VENDEDORES DROP FOREIGN KEY FK_VENDEDORES;

6 Exclui os 'menó' das Notas Fiscais,

7 Agora estou levando um couro pra tentar devolver a chave estrangeira à tabela.

1 resposta

Oi, Rafael, tudo bem?

Para reinserir uma chave estrangeira podemos usar o comando ALTER TABLEpor meio da cláusula ADD FOREIGN KEY. Um exemplo de sintaxe que podemos usar para isso está apresentado abaixo:

ALTER TABLE table_name 
ADD CONSTRAINT constraint_name 
FOREIGN KEY (foreign_key_name,...) 
REFERENCES parent_table(column_name,...);

No código acima temos:

  • table_name que representa a tabela onde será adicionada a chave estrangeira;
  • constraint_name que representa o nome da restrição de chave estrangeira;
  • Foreign_key_name, … é a lista de colunas de chave estrangeira;
  • parent_table é a tabela à qual sua chave estrangeira faz referência, seguida pela lista de nomes de colunas nessa tabela.

Todavia como não tenho acesso ao cenário completo do projeto outros testes terão de ser feitos a fim de obter o resultado esperado, mas espero que esta resposta seja um bom ponto de partida para a resolução do seu problema.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!