Oracle

SQL 設置列的允許值

  • December 7, 2017

我想創建一個ALTER TABLE表達式來添加一個新列並設置一個預設值,並額外定義該列的允許值。它是一個文本列,允許的應該只有“value1”、“value2”和“value3”。預設應為“value1”

根據以下語法圖:

在此處輸入圖像描述 在此處輸入圖像描述 在此處輸入圖像描述 在此處輸入圖像描述

我到了這一點

ALTER TABLE exampleTable ADD COLUMN new_column VarChar(20) DEFAULT 'value1' 

但我絕對不確定如何設置允許的值。

有沒有可能做類似的東西

約束檢查 new_column IN (‘value1’, ‘value2’, ‘value3)

? 我必須承認這張search condition圖讓我很困惑。

alter table ExampleTable
   add (new_column varchar(20) default 'value1',
        constraint ckExampleTable check (new_column in ('value1', 'value2', 'value3')));

您實際上應該將其作為兩個不同的語句來執行:

ALTER TABLE test
   ADD new_column VARCHAR(20) DEFAULT 'value1'

ALTER TABLE test
   ADD CONSTRAINT CK_exampleTable_newColumn CHECK (new_column IN ('value1','value2','value3'))

引用自:https://dba.stackexchange.com/questions/29801