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


8

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

以下の構文図によると:

ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください

私はここまで来ています

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

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

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

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

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

回答:



5

これは、実際には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'))

メモとして、これはSQL Serverの構文です。これは、Oracleタグがあり、SQL Serverのように見える前に質問に回答したためです。
cfradenburg 2012

0

SQLサーバー:

ALTER TABLE table_name
    ADD CONSTRAINT constraint_name CHECK (column_name IN ('aaa', 'bbb', ...))
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.