您如何更改 Oracle SQL 中的列以仅允许它接受两个值,Y 或 N?
How do you Alter a column in Oracle SQL to only allow it to take in two values, either a Y or a N?
我看到的大多数结果都是 MySQL。我明白要使用Alter Table
,还有MODIFY
,但之后我卡住了
我的table问题是这样的:
CREATE TABLE store_reps
(
rep_id NUMBER(5) PRIMARY KEY,
LastN VARCHAR2(15),
FirstN VARCHAR2(10),
comm CHAR(1) DEFAULT 'Y'
);
对于 comm 列,我想将其设置在只能允许“Y”或“N”的位置。我希望这足以帮助解决问题。
您正在寻找 check
约束条件:
CREATE TABLE store_reps (
rep_id NUMBER(5) PRIMARY KEY,
LastN VARCHAR2(15),
FirstN VARCHAR2(10),
comm CHAR(1) DEFAULT 'Y',
CONSTRAINT chk_store_reps_comm CHECK (comm IN ('Y', 'N'))
);
或者在创建 table 之后:
ALTER TABLE store_reps
ADD CONSTRAINT chk_store_reps_comm CHECK (comm IN ('Y', 'N'));
更改 table 并添加 CHECK
约束:
ALTER TABLE store_reps
ADD CONSTRAINT store_reps__comm__chk CHECK (comm IN ('Y', 'N'));
db<>fiddle here
我看到的大多数结果都是 MySQL。我明白要使用Alter Table
,还有MODIFY
,但之后我卡住了
我的table问题是这样的:
CREATE TABLE store_reps
(
rep_id NUMBER(5) PRIMARY KEY,
LastN VARCHAR2(15),
FirstN VARCHAR2(10),
comm CHAR(1) DEFAULT 'Y'
);
对于 comm 列,我想将其设置在只能允许“Y”或“N”的位置。我希望这足以帮助解决问题。
您正在寻找 check
约束条件:
CREATE TABLE store_reps (
rep_id NUMBER(5) PRIMARY KEY,
LastN VARCHAR2(15),
FirstN VARCHAR2(10),
comm CHAR(1) DEFAULT 'Y',
CONSTRAINT chk_store_reps_comm CHECK (comm IN ('Y', 'N'))
);
或者在创建 table 之后:
ALTER TABLE store_reps
ADD CONSTRAINT chk_store_reps_comm CHECK (comm IN ('Y', 'N'));
更改 table 并添加 CHECK
约束:
ALTER TABLE store_reps
ADD CONSTRAINT store_reps__comm__chk CHECK (comm IN ('Y', 'N'));
db<>fiddle here