Ich habe die Tabelle in MySQL Workbench wie unten gezeigt erstellt:
ORDRE-Tabelle:
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;
Produktliste:
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;
und ORDRELINJE Tische:
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;
Wenn ich also versuche, Werte in die ORDRELINJE
-Tabelle einzufügen, erhalte ich:
Fehlercode: 1452. Untergeordnete Zeile konnte nicht hinzugefügt oder aktualisiert werden: Fremdschlüsseleinschränkung fehlgeschlagen (
srdjank
.Ordrelinje
,约束Ordrelinje_fk
外键 (Ordre
) 参考Ord re
(OrdreID
) )
Ich habe andere Beiträge zu diesem Thema gesehen, aber kein Glück. Übersehe ich etwas oder weiß ich, was zu tun ist?
取自使用外键约束一个>
因此,您的错误
错误代码:1452。无法添加或更新子行:外键约束失败
本质上意味着,您正在尝试向Ordrelinje添加一行
Ordre
表中不存在匹配行 (OrderID) 的 code> 表。您必须首先将该行插入
Ordre
表中。