无法添加外键,因为需要唯一约束

时间:2014-04-05 18:52:49

标签: sql database oracle oracle-sqldeveloper

我是使用Oracle SQLDeveloper的新手,我现在正在开展大学项目。我一直在尝试将外键约束添加到我的表中(已经将外键作为属性保存)所以我使用ALTER这样:

alter table applies
add constraint e_number foreign key (e_number)
references student (e_number);

其中e_number是名为student的表中的主键。学生表的e_number具有主键约束,并且还具有自动生成的索引,其中在索引选项卡的UNIQUENESS列下显示UNIQUE。每当我尝试为我的任何表创建一个外键时,我每次都会遇到同样的错误:

Error starting at line : 1 in command -
alter table applies
add constraint e_number foreign key (e_number)
references student (e_number)
Error report -
SQL Error: ORA-02264: name already used by an existing constraint
02264. 00000 -  "name already used by an existing constraint"
*Cause:    The specified constraint name has to be unique.
*Action:   Specify a unique constraint name for the constraint.

我有点困惑,一直在阅读几个网站上的独特但仍然没有得到它。当我调用ALTER时,我可以指定FOREIGN键或指定UNIQUE键。我应该ALTER独特,然后ALTER外国?我做错了什么?

1 个答案:

答案 0 :(得分:4)

这是因为你已经拥有一个名为e_number的密钥。尝试:

alter table applies
add constraint applies_student_e_number foreign key (e_number)
references student (e_number);