您如何更改 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