Erro ao tentar criar tabela (ALGUEM?)

4 respostas
G

Boa noite a todos, alguém sabe o porquê de estar dando erro (abaixo do SQL) ao tentar criar esta tabela?

delimiter $$

CREATE TABLE `fornecedor` (
  `idPessoa` int(6) NOT NULL,
  `idAtividade` int(6) NOT NULL,
  `contato_principal` varchar(60) DEFAULT NULL,
  `email_nota_fiscal` varchar(150) NOT NULL,
  `razao_social` varchar(60) NOT NULL,
  PRIMARY KEY (`idPessoa`),
  FOREIGN KEY (`idPessoa`) REFERENCES `pessoa` (`idPessoa`),
  FOREIGN KEY (`idAtividade`) REFERENCES atividade (`idAtividade`)
) ENGINE=InnoDB DEFAULT CHARSET=latin2$$

Erro:
/* SQL Error (1005): Can't create table 'gpa.fornecedor' (errno: 150) Foreign key constraint is incorrectly formed */

4 Respostas

G

O erro acontece não só nesta tabela mas em todas as demais que tento colocar uma FK, não entendo o porquê!

vitorgp.ti

Boa noite!

Já verificou se nas tabelas onde estão os registros das chaves estrangeiras, os valores são iguais aos os da chave primária?

Exemplo: TB_Chamada.ID_Chamada INT(9);
TB_Chamada_Ocorrencia.FK_ID_Chamada INT(9);

Tente também diferenciar os campos… pelo que vi no seu código, os nomes das chaves estrangeiras são iguais aos das primárias!
Eu faço assim pra melhor visualizar os campos: ID_Nome (chave primária) - FK_ID_Nome (chave estrangeira)
Fica até mais fácil pra outras pessoas reconhecerem seu código !

G

Sim é verdade, eu corrigi os nomes e o problema realmente era este dos tipos, a pessoa tinha zerofill e nos demais não, por isto deu erro! Vlw pela ajuda.

vitorgp.ti

De nada!, boa noite.

Criado 14 de março de 2012
Ultima resposta 14 de mar. de 2012
Respostas 4
Participantes 2