it-swarm.com.de

SQL-Set zulässige Werte für eine Spalte

Ich möchte einen ALTER TABLE - Ausdruck erstellen, der eine neue Spalte hinzufügt, einen Standardwert festlegt und zusätzlich die zulässigen Werte für diese Spalte definiert. Es ist eine Textspalte und darf nur 'Wert1', 'Wert2' und 'Wert3' sein. Die Standardeinstellung sollte "Wert1" sein.

Nach folgenden Syntaxdiagrammen:

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

Ich komme an diesen Punkt

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

ich bin mir jedoch nicht sicher, wie ich die zulässigen Werte einstellen soll.

Ist es möglich, so etwas zu machen?

CONSTRAINT CHECK new_column IN ('Wert1', 'Wert2', 'Wert3)

? Ich muss zugeben, dass das search condition - Diagramm mich ziemlich verwirrt.

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

Sie sollten dies tatsächlich als zwei verschiedene Aussagen tun:

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 Server:

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