Ir para conteúdo

POWERED BY:

Arquivado

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

Tiago Mello

Restrições em chaves estrangeiras

Recommended Posts

Boa tarde pessoal!

Eu estou com uma dúvida em relação ao banco mysql, e as chaves estrangeiras.

Por exemplo se crio uma tabela desta forma:

CREATE TABLE teste(
nro_ped char(10) not null,
fornecedor CHAR(10) not null,
primary key(nro_ped),
foreign key (fornecedor)references fornecedor);
A chave estrangeira seria fornecedor, certo?

E para mim inserir um fornecedor na tabela teste, eu teria que te-lo criado na outra tabela, mas se insiro um nesta tabela , mesmo que não tenha sido criado na tabelas fornecedores, ele aceita.

O que pode estar acontecendo?

Desde já agradeço a todos!

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tiago, refaça sua chave estrangeira. Crie a tabela primeiro e depois faça a adição da chave estrangeira

 

ALTER TABLE add FOREIGN KEY (nome-campo) REFERENCES tabela(nome-campo);

Está errado a sua pois quando tentar adicionar um campo que não existe na outra tabela deverá retornar um erro, parecido com este:

 

#1452 - Cannot add or update a child row: a foreign key constraint fails (`nomebanco`.`log`, CONSTRAINT `log_ibfk_1` FOREIGN KEY (`id_user`) REFERENCES `usuarios` (`id_user`))

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá beleza amigo, mas não teria nenhum problema por exemplo, no momento que eu criar a tabela, já clocar as suas chaves estrangeiras né?

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não Tiago, desde que você crie na ordem certa as tabelas que estão sendo referenciadas. Eu prefiro criar todas as tabelas e depois ir setando suas chaves estrangeiras, fica mais simples pra mim...

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.