应用所有我读过的关于错误 02270 的内容后仍然出现错误
Still Getting Errors After Applying All I've Read About the Error 02270
我正在为一项作业创建几个 Table。
所以我创建了一个 Gardener
Table 和一个 Offering
Table,具有所有适当的数据类型和 NULL 状态,以及主键约束每个。在 Gardener
table 中,我包含了 offeringID
,反之亦然。
当我尝试将外键约束 offeringID
添加到 Gardener
Table 时出现错误。
在网上查了一下,我发现我忘了让 offeringID
和 gardenerID
在彼此的 table 中是唯一的,因此我修改了 table 以增加唯一性。
尝试添加外键约束,我得到了同样的错误。我想我可能理解错了,但我似乎无法理解它。
Create Table Gardener
(gardenerID NUMBER(10) NOT NULL,
offeringID NUMBER(10) NOT NULL,
CONSTRAINT gardener_pk PRIMARY KEY(gardenerID)
);
Create Table Offering
(offeringID NUMBER(10) NOT NULL,
gardenerID NUMBER(10) NOT NULL,
CONSTRAINT offering_pk PRIMARY KEY(offeringID)
);
Alter Table Gardener
add CONSTRAINT offering_fk FOREIGN KEY(offeringID)
REFERENCES Offering(offeringID);
Alter Table Gardener
add Unique(offeringID);
Alter Table Offering
add Unique(gardenerID);
这是错误:
ORA-02270: no matching unique or primary key for this column-list
02270. 00000 - "no matching unique or primary key for this column-list"
Cause: A REFERENCES clause in a CREATE/ALTER TABLE statement gives a column-list
for which there is no matching unique or primary key constraint in the referenced table.
就像,我还是不明白。 offeringID
不是主键,因此从 Gardener
指向它应该不是问题吗?
由于您尝试为 Gardener
table 中的 offering.offeringID
列添加外键约束,而当您尝试时该列没有 unique/primary key
键添加外键。即操作在第 3 个命令处停止。
因此,只需将命令的顺序交换为:
Alter Table Gardener
add Unique(offeringID); -- should be prior to the below command
Alter Table Gardener
add CONSTRAINT offering_fk FOREIGN KEY(offeringID)
REFERENCES Offering(offeringID);
我正在为一项作业创建几个 Table。
所以我创建了一个 Gardener
Table 和一个 Offering
Table,具有所有适当的数据类型和 NULL 状态,以及主键约束每个。在 Gardener
table 中,我包含了 offeringID
,反之亦然。
当我尝试将外键约束 offeringID
添加到 Gardener
Table 时出现错误。
在网上查了一下,我发现我忘了让 offeringID
和 gardenerID
在彼此的 table 中是唯一的,因此我修改了 table 以增加唯一性。
尝试添加外键约束,我得到了同样的错误。我想我可能理解错了,但我似乎无法理解它。
Create Table Gardener
(gardenerID NUMBER(10) NOT NULL,
offeringID NUMBER(10) NOT NULL,
CONSTRAINT gardener_pk PRIMARY KEY(gardenerID)
);
Create Table Offering
(offeringID NUMBER(10) NOT NULL,
gardenerID NUMBER(10) NOT NULL,
CONSTRAINT offering_pk PRIMARY KEY(offeringID)
);
Alter Table Gardener
add CONSTRAINT offering_fk FOREIGN KEY(offeringID)
REFERENCES Offering(offeringID);
Alter Table Gardener
add Unique(offeringID);
Alter Table Offering
add Unique(gardenerID);
这是错误:
ORA-02270: no matching unique or primary key for this column-list
02270. 00000 - "no matching unique or primary key for this column-list"
Cause: A REFERENCES clause in a CREATE/ALTER TABLE statement gives a column-list
for which there is no matching unique or primary key constraint in the referenced table.
就像,我还是不明白。 offeringID
不是主键,因此从 Gardener
指向它应该不是问题吗?
由于您尝试为 Gardener
table 中的 offering.offeringID
列添加外键约束,而当您尝试时该列没有 unique/primary key
键添加外键。即操作在第 3 个命令处停止。
因此,只需将命令的顺序交换为:
Alter Table Gardener
add Unique(offeringID); -- should be prior to the below command
Alter Table Gardener
add CONSTRAINT offering_fk FOREIGN KEY(offeringID)
REFERENCES Offering(offeringID);