web-dev-qa-db-ja.com

SQLは列に許可された値を設定

新しい列を追加してデフォルト値を設定し、さらにその列に許可される値を定義するALTER TABLE式を作成したいと思います。これはテキスト列であり、許可されているのは「value1」、「value2」、および「value3」のみです。デフォルトは 'value1'である必要があります

以下の構文図によると:

enter image description hereenter image description hereenter image description hereenter image description here

私はここまで来ています

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

しかし、私は許可された値を設定する方法が確実にわかりません。

何かのように作ることは可能ですか

CONSTRAINT CHECK new_column IN( '値1'、 '値2'、 '値3)

search conditionダイアグラムは私をかなり混乱させることを認めなければなりません。

8
Valentino Ru
alter table ExampleTable
    add (new_column varchar(20) default 'value1',
         constraint ckExampleTable check (new_column in ('value1', 'value2', 'value3')));
14
Keith Tate

これは実際には2つの異なるステートメントとして行う必要があります。

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'))
5
cfradenburg

SQLサーバー:

ALTER TABLE table_name
    ADD CONSTRAINT constraint_name CHECK (column_name IN ('aaa', 'bbb', ...))
0
Bohdan