违反了完整性约束 - 找不到父密钥(我是Oracle的新手)

时间:2015-03-31 10:19:09

标签: sql oracle

有人可以帮帮我吗? 我创建了所有的表并插入了语句,但是我收到了这个错误。

这是我试图将数据插入的表:

CREATE TABLE Avatar 
(
Avatar_ID NUMBER(3) CONSTRAINT pk_Avatar PRIMARY KEY,
AvatarName VARCHAR(255),
DOB NUMBER(12),
Gender VARCHAR(1),
Strength NUMBER(12),
Cost NUMBER(20),
Species_ID NUMBER(3), CONSTRAINT fk_Species_ID FOREIGN KEY (Player_ID) REFERENCES Species(Species_ID),
Weapon_ID NUMBER(3), CONSTRAINT f_Weapon_ID FOREIGN KEY (Weapon_ID) REFERENCES Weapon(Weapon_ID),
Player_ID NUMBER(3), CONSTRAINT fk_Player_ID FOREIGN KEY (Player_ID) REFERENCES Player(Player_ID)
);

这是我的插入声明:

INSERT INTO Avatar
VALUES (301,'Considia',05-04-15,'F',100,50,101,208,1);

错误:

“违反了完整性约束(%s。%s) - 找不到父密钥”(SQL Developer)

违反了

完整性约束(MS166.FK_SPECIES_ID) - 未找到父密钥(SQL Plus)

提前谢谢。

1 个答案:

答案 0 :(得分:1)

您是否引用了正确的密钥?

应该这样:

CONSTRAINT fk_Species_ID FOREIGN KEY (Player_ID) REFERENCES Species(Species_ID),

不是:

CONSTRAINT fk_Species_ID FOREIGN KEY (Species_ID) REFERENCES Species(Species_ID),