Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gilberto Jr

[Resolvido] [Resolvido] Inclusão FOREIGN KEY

Recommended Posts

Bom dia Pessoal;

 

Eu tenho duas tabelas, e estou tentando criar uma FOREIGN KEY. Só que esta aprensentando esse erro abaixo.

---------------------------
Error
---------------------------
SQL execution error # 1452. Response from the database:

Cannot add or update a child row: a foreign key constraint fails (`tecnogalli2`.<result 2 when explaining filename '#sql-339d_8886843'>, CONSTRAINT `#sql-339d_8886843_ibfk_1` FOREIGN KEY (`idpecapedido`) REFERENCES `tec_pecapedido` (`Id`) ON DELETE CASCADE O)
---------------------------
OK   
---------------------------

Alguém poderia me ajudar?

 

Att;

Gilberto Jr

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, Alaerte Gabriel disse:

Verifique se os campos são de mesmo tipo e tamanho.

as dua colunas são tipo int(11) e também tentei fazer com outras duas colunas, e elas são to tipo varchar(20)

 

Att;

Gilberto Jr 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ao tentar criar a FK o banco tenta validar a mesma , alguma "fk" não existe na "pk" criada

 

Citar

Cannot add or update a child row: a foreign key constraint fails
(`tecnogalli2`.<result 2 when explaining filename '#sql-339d_8886843'>,
CONSTRAINT `#sql-339d_8886843_ibfk_1` FOREIGN KEY (`idpecapedido`)
REFERENCES `tec_pecapedido` (`Id`) ON DELETE CASCADE O)

 

faça um sql deste tipo (troque a tabela da fk)

select *
from  <tabela>
where not exists (select null
                  from tec_pecapedido
                  where tec_pecapedido.tec_pecapedido = <tabela>.tec_pecapedido

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
8 minutos atrás, Motta disse:

select * from <tabela> where not exists (select null from tec_pecapedido where tec_pecapedido.tec_pecapedido = <tabela>.tec_pecapedido

Fiz da seguinte forma, 

 

select * 
from  tec_pecacompleto
where not exists (select null
                  from tec_pecapedido
                  where tec_pecapedido.tec_pecapedido = tec_pecacompleto.tec_pecapedido

onde a tabela tec_pecapedido é  tabela pai e tabela tec_pecacompleto é a tabela filha. ai ocorreu o seguinte erro.

---------------------------
Error
---------------------------
SQL execution error # 1064. Response from the database:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
---------------------------
OK   
---------------------------

Att;

Gilberto Jr

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

select *
from  tec_pecacompleto
where not exists (select null
                  from tec_pecapedido
                  where tec_pecapedido.tec_pecapedido = tec_pecacompleto.tec_pecapedido )

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 10/03/2017 at 19:31, Motta disse:

select *
from  tec_pecacompleto
where not exists (select null
                  from tec_pecapedido
                  where tec_pecapedido.id= tec_pecacompleto.idpecapedido )

 

 

Deu certo. Pelo select verifiquei os ID's que estava na tabela tec_pecacompleto.idpecapedido não existia tec_pecapedido.id.

 

Então eu apaguei essas linhas e criei a FOREIGN KEY novamente.

 

Att;

Gilberto Jr

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.