Eu mesmo tive esse problema, em relação à mensagem de erro recebida ao tentar preencher um campo de chave estrangeira. Acabei nesta página na esperança de encontrar a resposta. A resposta verificada nesta página é realmente a correta, infelizmente, sinto que a resposta é um pouco incompleta para pessoas que não conhecem o SQL. Eu sou bastante apto a escrever código, mas as consultas SQL são novas para mim, além de criar tabelas de banco de dados.
Apesar da resposta verificada estar correta:
Mike M escreveu:
"A maneira como um FK funciona é que ele não pode ter um valor nessa coluna que também não esteja na coluna de chave primária da tabela referenciada."
O que está faltando nesta resposta é simplesmente;
Você deve criar a tabela que contém a chave primária primeiro.
Outra maneira de dizer isso é;
Você deve inserir dados na tabela pai, contendo a chave primária, antes de tentar inserir dados na tabela filho que contém a chave estrangeira.
Em resumo, muitos dos tutoriais parecem estar escondendo esse fato, de modo que, se você tentar por conta própria e não perceber que há uma ordem de operações, poderá receber esse erro. Naturalmente, após adicionar os dados da chave primária, os dados da chave estrangeira na tabela filho devem estar em conformidade com o campo da chave primária na tabela pai; caso contrário, você ainda receberá esse erro.
Se alguém ler até aqui. Espero que isso tenha ajudado a tornar a resposta marcada mais clara. Sei que alguns de vocês podem achar que esse tipo de coisa é bem direta e que abrir um livro teria respondido a essa pergunta antes de ser publicada, mas a verdade é que nem todo mundo aprende da mesma maneira.
Sup_Item_Cat
tabela. Não há muito mais a dizer sobre isso.