我刚刚开始使用 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.
我有点困惑,已经在几个网站上阅读了有关 unique 的内容,但仍然不明白。当我调用 ALTER 时,我可以指定 FOREIGN 键或指定 UNIQUE 键。我应该先改变独特的,然后改变外国的吗?我做错了什么?
最佳答案
这是因为您已经有一个名为 e_number 的 key 。尝试:
alter table applies
add constraint applies_student_e_number foreign key (e_number)
references student (e_number);
关于sql - 无法添加外键,因为需要唯一约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22885281/