Fórum Problema ao Criar Chave Estrangeira #408558

18/10/2011

0

Pessoal, tenho duas tabelas (InnoDB) no MySQL as quais opero via PHPMyAdmin, o qual não está me deixando criar uma chave estrangeira entre elas. Já conferi tudo e não cria. Será que alguém pode me ajudar?

Os dois campos nessas duas tabelas estão como tinyint(3) unsigned not null e na tabela filha há índice no campo correspondente. Ou seja, me parece tudo normal! É um relacionamento 1 para muitos.

Grata!!

Natascha
Natascha Sh

Natascha Sh

Responder

Posts

18/10/2011

Tiago Bocato

Natascha,

Existem dados nas tabelas?
Qual o erro que retorna?

att. Tiago Bocato
Responder

Gostei + 0

19/10/2011

Natascha Sh

Sim, há campos na tabela, porém já verifiquei que não há filhos sem código correspondente da tabela pai.

Mensagem exibida: Erro na criação da chave estrangeira (cheque o tipo de dado) : CodProtecao

CodProtecao é chave primaria na tabela pai e há um índice nesse campo na tabela filha.

Conforme comentei, as duas são tinyint(3) unsigned not null.

Grata.

Natascha
Responder

Gostei + 0

22/10/2011

Luciano Martins

pelo jeito vc criou as chaves de tipos diferentes em cada tabela...tipow na tabela pai: CodProtecao é int no filha: CodProtecao é big veja ai e se for o caso post as classes aki...
Responder

Gostei + 0

30/11/2011

Natascha Sh

Situação:

TABELA DADOS
idopdados smallint(3) UNSIGNED NOT NULL auto_increment
idgrupo tinyint(3) UNSIGNED NOT NULL

TABELA PASSOS
idoppassos smallint(5) UNSIGNED NOT NULL auto_increment
idopdados smallint(3) UNSIGNED NOT NULL
descricaopasso text NOT NULL

Há index em idopdados.

Quero criar chave estrangeira entre as tabelas com o campo idoppassos.

O retorno do MySql é: Erro na criação da chave estrangeira (cheque o tipo de dado) : idopdados

???

Natascha
Responder

Gostei + 0

30/11/2011

Natascha Sh

É coisa do assistente PHPMyAdmin, com comando SQL direto funcionou.

Natascha
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar