Guga01 0 Denunciar post Postado Fevereiro 7, 2011 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
Motta 645 Denunciar post Postado Fevereiro 7, 2011 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