我正在尝试使用disjoint subtype relationship
创建一个表。
例如,如果Supertype
是家具,我有3 Subtypes
个家具:椅子,沙发和桌子。
然后:
CREATE TABLE Furniture
(order_num NUMBER(15), desc VARCHAR2(20), type VARCHAR2(10));
如何选择选择椅子,沙发或桌子?
答案 0 :(得分:2)
您可以在CREATE TABLE中使用REFERENCES。
CREATE TABLE Furniture_SubTypes
(
sub_type VARCHAR(10) PRIMARY KEY
);
INSERT INTO Furniture_SubTypes VALUES ('Chair');
INSERT INTO Furniture_SubTypes VALUES ('Couch');
INSERT INTO Furniture_SubTypes VALUES ('Table');
CREATE TABLE Furniture
(
order_num NUMBER,
description VARCHAR(20),
sub_type REFERENCES Furniture_SubTypes(sub_type)
);
答案 1 :(得分:1)
使用check
约束:
CREATE TABLE Furniture (
order_num NUMBER(15),
description VARCHAR2(20),
type VARCHAR2(10),
check (type in ('chair', 'couch', 'table'))
);
请注意,desc
是列名称的不良选择,因为它是SQL中的关键字(用于order by
)。