外键引用
Foreign Key Reference
我在 class 中指出 FlightData
table 中的 2 个外键是 Depart_Code
和 Ariv_Code
没有任何 table 在给定的关系模式中引用它们作为主键。
在 class 中,有人告诉我他们在 Airport
table 中引用了 Airport_Code
。我想知道我会去做那件事吗?我觉得我错过了一些明显的东西。我感谢提供的任何帮助我对数据库仍然是新手,我目前使用的是 Oracle 11g。
机场table
CREATE TABLE Airport
(
Airport_Code VARCHAR2(7) CONSTRAINT pk_Airport Primary Key,
City_Code VARCHAR2(3),
CONSTRAINT fk_Airport_City_Code
FOREIGN KEY(City_Code) REFERENCES City,
Airport_Name VARCHAR2(30)
);
航班数据 table:
CREATE TABLE FlightData
(
Flt_Nbr VARCHAR2(3) CONSTRAINT pk_FlightData Primary Key,
Depart_Code VARCHAR2(30),
Ariv_Code VARCHAR2(30)
);
要确保 Depart_Code
和 Ariv_Code
始终引用 Airport
table 中的机场,您需要:
- 将这些列设为
NOT NULL
。
- 确保它们与
Airport
中的键具有相同的数据类型。使它们的长度为 7
.
- 添加两个外键约束,每个都基于每一列。
例如,第二个 table 可能如下所示:
CREATE TABLE FlightData (
Flt_Nbr VARCHAR2(3) CONSTRAINT pk_FlightData Primary Key,
Depart_Code VARCHAR2(7) not null,
constraint fk1 foreign key (Depart_Code) references Airport (Airport_Code),
Ariv_Code VARCHAR2(7) not null,
constraint fk2 foreign key (Ariv_Code) references Airport (Airport_Code)
);
我在 class 中指出 FlightData
table 中的 2 个外键是 Depart_Code
和 Ariv_Code
没有任何 table 在给定的关系模式中引用它们作为主键。
在 class 中,有人告诉我他们在 Airport
table 中引用了 Airport_Code
。我想知道我会去做那件事吗?我觉得我错过了一些明显的东西。我感谢提供的任何帮助我对数据库仍然是新手,我目前使用的是 Oracle 11g。
机场table
CREATE TABLE Airport
(
Airport_Code VARCHAR2(7) CONSTRAINT pk_Airport Primary Key,
City_Code VARCHAR2(3),
CONSTRAINT fk_Airport_City_Code
FOREIGN KEY(City_Code) REFERENCES City,
Airport_Name VARCHAR2(30)
);
航班数据 table:
CREATE TABLE FlightData
(
Flt_Nbr VARCHAR2(3) CONSTRAINT pk_FlightData Primary Key,
Depart_Code VARCHAR2(30),
Ariv_Code VARCHAR2(30)
);
要确保 Depart_Code
和 Ariv_Code
始终引用 Airport
table 中的机场,您需要:
- 将这些列设为
NOT NULL
。 - 确保它们与
Airport
中的键具有相同的数据类型。使它们的长度为7
. - 添加两个外键约束,每个都基于每一列。
例如,第二个 table 可能如下所示:
CREATE TABLE FlightData (
Flt_Nbr VARCHAR2(3) CONSTRAINT pk_FlightData Primary Key,
Depart_Code VARCHAR2(7) not null,
constraint fk1 foreign key (Depart_Code) references Airport (Airport_Code),
Ariv_Code VARCHAR2(7) not null,
constraint fk2 foreign key (Ariv_Code) references Airport (Airport_Code)
);