【发布时间】:2014-04-08 06:15:59
【问题描述】:
我在尝试创建两个表时收到错误消息。有一个多值依赖,所以我将表分开并想出了这个:
CREATE TABLE NAME (
NameID Integer NOT NULL AUTO_INCREMENT,
Name varChar(255) NOT NULL,
CONSTRAINT NAME_PK PRIMARY KEY(NameID)
);
CREATE TABLE PHONE (
NameID Integer NOT NULL,
PhoneNumber varChar(15) NOT NULL,
NumType varChar(5) NOT NULL,
CONSTRAINT PHONE_FK FOREIGN KEY(NameID)
REFERENCES NAME(NameID),
CONSTRAINT PHONE_PK PRIMARY KEY(NameID)
);
但是在尝试使用此代码添加值时:
INSERT INTO NAME (NameID, Name) VALUES (default, 'John Doe');
INSERT INTO PHONE (NameID, PhoneNumber, NumType) VALUES (default, '706-782-4719', 'Home');
我收到臭名昭著的 1452 错误:
Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`phone_mcneill`.`PHONE`, CONSTRAINT `PHONE_FK` FOREIGN KEY (`NameID`) REFERENCES `NAME` (`NameID`))
我不完全确定这意味着什么,因为我在第一个表中有 NameID 自动递增。我不能在第二个中使用它 auto_increment 以及它是一个外键,对吗?提前感谢您的帮助。
【问题讨论】:
标签: mysql sql database foreign-keys mysql-error-1452