如何修改默认值以在SQL中接受Y或N而不是Y

jgo*_*994 2 sql database oracle default

我正在尝试修改现有表的列中的默认设置,但是它不起作用。我在其他网站上进行了研究,但无法正常工作。

ALTER TABLE STOREREPS
MODIFY (COMM DEFAULT ('Y', 'N'));
Run Code Online (Sandbox Code Playgroud)

我的默认设置为Y

我正在使用Oracle 11g SQL Developer。

Jon*_*ler 5

您只能有一个默认值。当您在表中插入一行并且未为该列指定值时,将使用默认值。您可以添加CHECK约束以确保只允许'Y'或被'N'允许;那可能就是您要寻找的。

根据每个DBMS(现在标识为Oracle)的不同,您可以编写如下内容

ALTER TABLE STOREREPS
    MODIFY (COMM DEFAULT 'Y'),
    ADD CONSTRAINT check_comm_y_n CHECK (COMM IN ('Y', 'N'));
Run Code Online (Sandbox Code Playgroud)

在CREATE TABLE语句中,可能是:

CREATE TABLE StoreReps
(
    …
    Comm CHAR(1) NOT NULL DEFAULT 'Y'
         CONSTRAINT check_comm_y_n CHECK (Comm IN ('Y', 'N')),
    …
);
Run Code Online (Sandbox Code Playgroud)

但是确切的语法因DBMS而异。