Problema ao Criar Chave Estrangeira

MySQL

18/10/2011

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

Curtidas 0

Respostas

Tiago Bocato

Tiago Bocato

18/10/2011

Natascha,

Existem dados nas tabelas?
Qual o erro que retorna?

att. Tiago Bocato
GOSTEI 0
Natascha Sh

Natascha Sh

18/10/2011

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
GOSTEI 0
Luciano Martins

Luciano Martins

18/10/2011

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...
GOSTEI 0
Natascha Sh

Natascha Sh

18/10/2011

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
GOSTEI 0
Natascha Sh

Natascha Sh

18/10/2011

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

Natascha
GOSTEI 0
POSTAR