ERRO 1452: Não é possível adicionar ou atualizar uma linha filha: uma restrição de chave estrangeira falha

Eu criei tabelas no MySQL Workbench como mostrado abaixo:

Tabela ORDRE:

CREATE TABLE Ordre ( OrdreID INT NOT NULL, OrdreDato DATE DEFAULT NULL, KundeID INT DEFAULT NULL, CONSTRAINT Ordre_pk PRIMARY KEY (OrdreID), CONSTRAINT Ordre_fk FOREIGN KEY (KundeID) REFERENCES Kunde (KundeID) ) ENGINE = InnoDB; 

Tabela PRODUCTT:

 CREATE TABLE Produkt ( ProduktID INT NOT NULL, ProduktBeskrivelse VARCHAR(100) DEFAULT NULL, ProduktFarge VARCHAR(20) DEFAULT NULL, Enhetpris INT DEFAULT NULL, CONSTRAINT Produkt_pk PRIMARY KEY (ProduktID) ) ENGINE = InnoDB; 

e mesa ORDRELINJE:

 CREATE TABLE Ordrelinje ( Ordre INT NOT NULL, Produkt INT NOT NULL, AntallBestilt INT DEFAULT NULL, CONSTRAINT Ordrelinje_pk PRIMARY KEY (Ordre, Produkt), CONSTRAINT Ordrelinje_fk FOREIGN KEY (Ordre) REFERENCES Ordre (OrdreID), CONSTRAINT Ordrelinje_fk1 FOREIGN KEY (Produkt) REFERENCES Produkt (ProduktID) ) ENGINE = InnoDB; 

então quando eu tento inserir valores na tabela ORDRELINJE eu recebo:

Código de erro: 1452. Não é possível adicionar ou atualizar uma linha filha: uma restrição de chave estrangeira falha ( srdjank . Ordrelinje , CONSTRAINT Ordrelinje_fk CHAVE ESTRANGEIRA ( Ordre ) REFERENCES Ordre ( OrdreID ))

Eu vi os outros posts sobre este tema, mas sem sorte. Estou supervisionando algo ou alguma ideia do que fazer?

    Extraído de Usando Restrições FOREIGN KEY

    Os relacionamentos de chave estrangeira envolvem uma tabela pai que contém os valores de dados centrais e uma tabela filha com valores idênticos apontando para seu pai. A cláusula FOREIGN KEY é especificada na tabela filha.

    Ele rejeitará qualquer operação INSERT ou UPDATE que tente criar um valor de chave estrangeira em uma tabela filha, se não houver um valor de chave candidato correspondente na tabela pai.

    Portanto, seu erro Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails significa que você está tentando adicionar uma linha à sua tabela Ordrelinje para a qual nenhuma linha correspondente (OrderID) está presente na tabela Ordre .

    Você deve primeiro inserir a linha na sua tabela Ordre .

    Você está recebendo essa verificação de restrição porque a tabela de ordenação não possui o ID de ordem de referência fornecido no comando de inserção.

    Para inserir um valor em ordrelinje, primeiro você precisa inserir o valor na tabela de ordenação e usar o mesmo ordreID na tabela orderlinje.

    Ou você pode remover a restrição não nula e inserir um valor NULL nela.

    Você deve excluir dados na tabela filha que não possui nenhum valor de chave estrangeira correspondente à chave primária da tabela pai. Ou excluir todos os dados da tabela filha e inserir novos dados com o mesmo valor de chave estrangeira da chave primária na tabela pai . Isso deve funcionar

    Ao inserir os valores de atributo de chave estrangeira, primeiro verifique o tipo de atributo, bem como o valor do atributo de chave primária na relação pai, se os valores na relação pai corresponderem e, em seguida, você poderá inserir / atualizar facilmente os valores de atributo filho.

    Sua tabela ORDRELINJE está vinculada à tabela ORDER usando uma restrição de constraint Ordrelinje_fk foreign key(Ordre) references Ordre(OrdreID) acordo com a qual Ordre int NOT NULL, coluna ORDRELINJE deve corresponder a qualquer tabela Ordre int NOT NULL, coluna da tabela ORDER .

    Agora o que está acontecendo aqui é, quando você está inserindo uma nova linha na tabela ORDRELINJE , de acordo com a restrição fk Ordrelinje_fk está verificando a tabela ORDER se o OrdreID está presente ou não e como não está combinando com qualquer OrderId, o compilador está reclamando por chave estrangeira violação. Esta é a razão pela qual você está recebendo este erro.

    Chave estrangeira é a chave primária da outra tabela que você usa em qualquer tabela para vincular entre ambas. Essa chave é limitada pela restrição de chave estrangeira que você especifica ao criar a tabela. Qualquer operação nos dados não deve violar essa restrição. A violação desta restrição pode resultar em erros como este.

    Espero ter deixado claro.

    você deve inserir pelo menos um raw em cada tabela (aquelas que você quer que as foreign keys apontem), então você pode inserir ou atualizar os valores das foreign keys