2015-03-31 104 views
0

有人可以帮我吗? 我创建了所有的表和插入语句,但我得到这个错误。违反了完整性约束 - 未找到父键(我是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_SPECI ES_ID)违反 - 未找到父键(SQL Plus)

在此先感谢您。

+0

不种表包括键101? – 2015-03-31 10:20:23

+0

是的,它是 - 它是我第一次插入物种表的语句 – Shireen 2015-03-31 10:22:07

+0

我正在使用SQL Developer插入数据,而我正在使用SQL * Plus检查错误的位置 – Shireen 2015-03-31 10:32:19

回答

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), 
+0

是的,这是问题所在。非常感谢。 – Shireen 2015-03-31 10:34:52

相关问题