Ir para conteúdo

POWERED BY:

Arquivado

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

Guga01

Erro na inserção de dados

Recommended Posts

Olá pessoal!

 

Estou desenvolvendo um sistema em php com mysql onde podem existir categorias com 0 ou n subníveis. Então, criei esta tabela:

 

CREATE TABLE `categorias` (
`id_categorias` int(5) unsigned zerofill NOT NULL auto_increment,
`nome` varchar(100) collate latin1_general_ci default NULL,
`idPai` int(5) unsigned zerofill NOT NULL default 0,
`ordem` tinyint(1) NOT NULL default 0,
`dataCadastro` datetime NOT NULL,
`dataAtualizacao` datetime NOT NULL,
PRIMARY KEY  (`id_categorias`),
FOREIGN KEY (`idPai`)
REFERENCES categorias(`id_categorias`)
ON DELETE RESTRICT
ON UPDATE CASCADE) ENGINE=InnoDB  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

 

A idéia é que, se o campo idPai for zero, a categoria é raíz se não, a categoria é subnível da categoria de índice idPai. O problema é que, quando fui inserir os seguintes dados:

 

insert into categorias(nome, idPai, ordem, dataCadastro, dataAtualizacao) values('blusas', 0, 0, NOW(), NOW());

 

deu o seguinte erro:

 

#1452 - Cannot add or update a child row: a foreign key constraint fails (`schuermann2/categorias`, CONSTRAINT `categorias_ibfk_1` FOREIGN KEY (`idPai`) REFERENCES `categorias` (`id_categorias`) ON UPDATE CASCADE)

 

Alguém poderia me ajudar? Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

IdPai terá que aceitar nulo, o registro "pai" terá este campo nulo, os "filhos" sim que apontam para ele.

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.