我正在尝试使用disjoint subtype relationship创建一个表。
例如,如果Supertype是家具,我有3个Subtypes的家具:椅子、沙发和桌子。
然后:
CREATE TABLE Furniture
(order_num NUMBER(15), desc VARCHAR2(20), type VARCHAR2(10));如何选择椅子、沙发或桌子的类型?
发布于 2014-12-11 02:49:33
您可以在CREATE TABLE中使用引用。
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)
);发布于 2014-12-11 02:37:39
使用check约束:
CREATE TABLE Furniture (
order_num NUMBER(15),
description VARCHAR2(20),
type VARCHAR2(10),
check (type in ('chair', 'couch', 'table'))
);注意,对于列名来说,desc不是一个好的选择,因为它是SQL中的一个关键字(用于order by)。
https://stackoverflow.com/questions/27408352
复制相似问题