有两种方法。
CREATE TABLE AccountRequest(
RequestId NUMBER PRIMARY KEY,
Branch VARCHAR2(15),
Account_Type VARCHAR2(15),
Title VARCHAR2(4),
FirstName VARCHAR2(15),
LastName VARCHAR2(15),
Birthday DATE,
WorkPhone VARCHAR2(10),
HomePhone VARCHAR2(10),
Address VARCHAR2(30),
State VARCHAR2(15),
Zip NUMBER(10),
Email VARCHAR2(30),
Status VARCHAR2(10) DEFAULT 'Entered',
CONSTRAINT AccountRequest__Acount_Type__CHK
CHECK ( Account_Type IN ( 'value1', 'value2' ) )
);
- 或者,您可以将可接受的值放在另一个表中并使用引用约束。
CREATE TABLE account_types (
account_type VARCHAR2(15),
CONSTRAINT account_types__account_type__pk PRIMARY KEY (account_type)
);
INSERT INTO Account_Types ( Account_Type ) VALUES ( 'value1' );
INSERT INTO Account_Types ( Account_Type ) VALUES ( 'value2' );
CREATE TABLE AccountRequest(
RequestId NUMBER PRIMARY KEY,
Branch VARCHAR2(15),
Account_Type VARCHAR2(15) NOT NULL,
Title VARCHAR2(4),
FirstName VARCHAR2(15),
LastName VARCHAR2(15),
Birthday DATE,
WorkPhone VARCHAR2(10),
HomePhone VARCHAR2(10),
Address VARCHAR2(30),
State VARCHAR2(15),
Zip NUMBER(10),
Email VARCHAR2(30),
Status VARCHAR2(10) DEFAULT 'Entered',
CONSTRAINT AccountRequest__Acount_Type__FK
FOREIGN KEY ( Account_Type ) REFERENCES Account_Types (Account_Type)
);
注意:您可能不想为电话号码使用NUMBER 数据类型;尽管它们由数字字符组成,但它们通常以 0 开头,而 NUMBER 列不会存储它。
注意:DATE 是一种二进制数据类型,总是具有年、月、日、小时、分钟和秒组件,并且不存储任何格式。您不能使用DEFAULT 设置格式。