©JOÃO GABRIEL MARQUES Postado Dezembro 18, 2007 Denunciar Share Postado Dezembro 18, 2007 Olá!Seguinte: eu tentei criar uma chave estrangeira dentro de uma tabela no MySQL, através do phpMyAdmin, e tá dando o seguinte erro:#1216 - Cannot add or update a child row: a foreign key constraint failsAlguém sabe me dizer o que significa esse erro e como eu posso evitá-lo?Obrigado. Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Dezembro 18, 2007 Denunciar Share Postado Dezembro 18, 2007 Olá!Seguinte: eu tentei criar uma chave estrangeira dentro de uma tabela no MySQL, através do phpMyAdmin, e tá dando o seguinte erro:#1216 - Cannot add or update a child row: a foreign key constraint failsAlguém sabe me dizer o que significa esse erro e como eu posso evitá-lo?Obrigado.Oi, João!Você está tentando gravar na tabela filha sem que haja referência na tabela pai.Grave primeiro na tabela pai depois na tabela filha, e para excluir faça sempre ao contrário. Link para o comentário Compartilhar em outros sites More sharing options...
0 ©JOÃO GABRIEL MARQUES Postado Dezembro 18, 2007 Autor Denunciar Share Postado Dezembro 18, 2007 (editado) Olá!Seguinte: eu tentei criar uma chave estrangeira dentro de uma tabela no MySQL, através do phpMyAdmin, e tá dando o seguinte erro:#1216 - Cannot add or update a child row: a foreign key constraint failsAlguém sabe me dizer o que significa esse erro e como eu posso evitá-lo?Obrigado.Oi, João!Você está tentando gravar na tabela filha sem que haja referência na tabela pai.Grave primeiro na tabela pai depois na tabela filha, e para excluir faça sempre ao contrário.Ainda tá dando erro. Vou explicar:As duas tabelas pertencem a um banco de dados de notícias. A tabela pai é "tbCategorias", responsável por guardar opções de hierarquia para as notícias, como Manchete 1, Manchete 2...ou seja, é por essa tabela que eu vou organizar as notícias nas homes. A tabela filha é "tbNoticias", que guarda as notícias propriamente ditas. Veja abaixo a estrutura das duas tabelas:==========tbCategorias===========CREATE TABLE `tbCategorias` ( `idCat` int(5) NOT NULL auto_increment, `categoria` varchar(30) NOT NULL default '', PRIMARY KEY (`idCat`), KEY `categoria` (`categoria`)) TYPE=InnoDB===========tbNoticias============CREATE TABLE `tbNoticias` ( `idNoticia` mediumint(20) NOT NULL auto_increment, `editoria` varchar(15) NOT NULL default '', `categoria` varchar(30) NOT NULL default '', `data` date NOT NULL default '0000-00-00', `hora` time NOT NULL default '00:00:00', `autor` varchar(50) NOT NULL default '', `keyword` varchar(50) NOT NULL default '', `titulo` varchar(255) NOT NULL default '', `linhafina` text NOT NULL, `texto` longtext NOT NULL, `foto` tinyint(1) NOT NULL default '0', `publicar` tinyint(1) NOT NULL default '0', `home` tinyint(1) NOT NULL default '0', `cliques` int(11) NOT NULL default '0', PRIMARY KEY (`idNoticia`), KEY `editoria` (`editoria`), KEY `categoria` (`categoria`)) TYPE=InnoDBA tbCategorias tem um índice no campo "categoria", que é onde tem os nomes das categorias: "man1", "man1_suite", "man2" e assim vai. Essa é a tabela pai.Na tbNoticias, eu criei um índice no campo "categoria", e esse campo é que deve conter a referência da tbCategorias. Eu também tenho uma tabela chamada "tbEditorias" que guarda as editorias como Brasil, Economia, Internacional etc. O relacionamento da tbEditorias e da tbNoticias deu certo, não deu erro nenhum. Mas já no caso da tbCategorias tá dando erro. A lógica é a seguinte: -> uma categoria pode ser responsável por várias notícias; -> uma notícia só pode pertencer a 1 categoria.O que eu faço? Eu estou perdendo os cabelos da minha cabeça já!!! rsrs Editado Dezembro 18, 2007 por ©JOÃO GABRIEL MARQUES Link para o comentário Compartilhar em outros sites More sharing options...
0 ©JOÃO GABRIEL MARQUES Postado Dezembro 18, 2007 Autor Denunciar Share Postado Dezembro 18, 2007 Só estou postando pra dizer que agora funcionou. Eu deletei as tabelas, que já tinham registros, e fiz o dump de novo. Para criar relacionamentos, as tabelas não podem conter nenhum registro? Isso tem alguma coisa a ver? Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Dezembro 19, 2007 Denunciar Share Postado Dezembro 19, 2007 Só estou postando pra dizer que agora funcionou. Eu deletei as tabelas, que já tinham registros, e fiz o dump de novo. Para criar relacionamentos, as tabelas não podem conter nenhum registro? Isso tem alguma coisa a ver?Sim. provavelmente você tinha alguma chave duplicada(lixo?) na tabela pai e a referência não estava sendo estabelecida. Link para o comentário Compartilhar em outros sites More sharing options...
0 ©JOÃO GABRIEL MARQUES Postado Dezembro 19, 2007 Autor Denunciar Share Postado Dezembro 19, 2007 Só estou postando pra dizer que agora funcionou. Eu deletei as tabelas, que já tinham registros, e fiz o dump de novo. Para criar relacionamentos, as tabelas não podem conter nenhum registro? Isso tem alguma coisa a ver?Sim. provavelmente você tinha alguma chave duplicada(lixo?) na tabela pai e a referência não estava sendo estabelecida.Cada hora é um erro diferente que me aparece...vivendo e aprendendo! Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
©JOÃO GABRIEL MARQUES
Olá!
Seguinte: eu tentei criar uma chave estrangeira dentro de uma tabela no MySQL, através do phpMyAdmin, e tá dando o seguinte erro:
#1216 - Cannot add or update a child row: a foreign key constraint fails
Alguém sabe me dizer o que significa esse erro e como eu posso evitá-lo?
Obrigado.
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados