【发布时间】:2012-05-29 15:30:17
【问题描述】:
我有两张表,Table JOB 和 Table USER,这是结构
CREATE TABLE JOB
(
ID NUMBER NOT NULL ,
USERID NUMBER,
CONSTRAINT B_PK PRIMARY KEY ( ID ) ENABLE
);
CREATE TABLE USER
(
ID NUMBER NOT NULL ,
CONSTRAINT U_PK PRIMARY KEY ( ID ) ENABLE
);
现在,我想将外键约束添加到 JOB 引用 USER 表,如
Alter Table JOB ADD CONSTRAINT FK_USERID FOREIGN KEY(USERID) REFERENCES USER(ID);
这会抛出Oracle (ORA-02270) : no matching unique or primary key for this column-list error,做一些调查似乎我们需要在USERID 上设置unique key or primary key 约束,但我不能这样,因为一个USERID 可以有多个JOBS 与他相关联,任何想法或有关如何解决此问题的建议?
【问题讨论】:
-
建议:删除这些表,然后重新运行 DDL。我建议先创建 USER,然后再创建 JOB。让我们知道它是否有效。您也可以尝试将“USER”放在双引号中,如@LSU.Net 对第一个答案的评论中所述(如下)。
-
@APC:首先,我不打算浪费社区时间,我重视社区所付出的努力。除此之外,我不知道哪里产生了错误,所以有问题。
-
这个错误背后的原因是 - User 表的 ID 列不是唯一的或主键
标签: database oracle foreign-keys primary-key