我已经在MySQL Workbench中创建了表,如下所示:
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; 产品表:
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; 和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; 因此,当我尝试将值插入ORDRELINJE表时,我得到:
错误代码:1452。无法添加或更新子行:外键约束失败(srdjank。Ordrelinje,CONSTRAINT Ordrelinje_fkFOREIGN KEY(Ordre)参考Ordre(OrdreID))
我看过有关该主题的其他文章,但没有运气。我正在监督某件事或任何想法怎么办吗?
外键关系涉及一个包含中央数据值的父表,以及一个具有指向其父级的相同值的子表。在子表中指定FOREIGN KEY子句。
如果在父表中没有匹配的候选键值,它将拒绝任何试图在子表中创建外键值的INSERT或UPDATE操作。
因此,您的错误Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails实质上意味着,您正在尝试向Ordrelinje表中添加一行,但表中没有匹配的行(OrderID)Ordre。
您必须首先将行插入到Ordre表中。来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。