Erro cannot add or update a child row a foreign key constraint fails [RESOLVIDO]

4 respostas
javamysqlerror
A

Boa noite pessoal

O meu problema é o seguinte, tenho uma tela de venda que quando eu clico no botão produto para selecionar o produto da venda, esse botão chama a tela de produtos para ser selecionado e também tem um método que nesse botão que faz um insert na tabela pedido do banco para o sistema já iniciar com a venda. o problema e que quando eu clico no botão produto já da esse erro "cannot add or update a child row a foreign key constraint fails(vendas_mega,pedido,CONSTRAINTpedido_ibfk_1 FOREIGN KEY(cliente)REFERENCES cliente(ìd_cliente`)) ".

no banco tenho a tabela pedido que tem o campo cliente que é uma chave estrangueira do id_cliente da tabela cliente

Alguém teria alguma ideia do que seria? já fiz quase tudo e não consegui resolver ja até recriei o banco e nada. segue as telas do sistema e do banco.

Desde já agradeço

tabela clientetabela pedido

4 Respostas

M

Olá @aeciocleysson!

Confira se você está passando um valor válido para a coluna CLIENTE da tabela PEDIDO.

Outra verificação a ser feita é onde a CONSTRAINT foi criada, se foi na tabela PAI ou FILHA; acredito que a mesma deve ser definida na tabela FILHA.

Encontrei um post do Alura, onde mencionaram a utilização de uma tabela após adicionar uma coluna, sendo que esta não possuía valores válidos: Post do Alura

Dá uma olhada neste POST do GUJ que resolvemos ontem: Field doesn’t have a default value

Nele falamos sobre FOREIGN KEYS (alguns cuidados no uso).

Atente-se aos itens:

  1. Ter um registro na tabela CLIENTE antes de inserir um registro na tabela PEDIDO
  2. Inserir na tabela PEDIDO, na coluna CLIENTE, um valor válido (existente na tabela CLIENTE -> ID_CLIENTE).

Veja se alguma destas situações se enquadram no que você está obtendo.

Poste os resultados de suas verificações!

P

O cliente “3” (porque 3 e não outro qualquer?) existe?

A

o problema era esse mesmo, eu estava fazendo o INSERT mas não estava passando nada para se gravado no banco, valeu pela ajuda.

A

na verdade eu tinha até errado na ordem dos parametros, mas consegui resolver, eu não estava passando nada para ser gravado no banco por isso estava dando o erro, valeu pela ajuda.

Criado 27 de dezembro de 2017
Ultima resposta 27 de dez. de 2017
Respostas 4
Participantes 3