it-swarm-eu.dev

SQL nastavil povolené hodnoty pro sloupec

Chci udělat ALTER TABLE výraz, který přidá nový sloupec a nastaví výchozí hodnotu a navíc definuje povolené hodnoty pro tento sloupec. Je to textový sloupec a povoleno by mělo být pouze 'value1', 'value2' a 'value3'. Výchozí hodnota by měla být 'value1'

Podle následujících syntaktických diagramů:

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

Dostávám se k tomuto bodu

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

ale rozhodně si nejsem jistý, jak nastavit povolené hodnoty.

Je možné něco udělat

CONSTRAINT CHECK new_column IN ('value1', 'value2', 'value3)

? Musím přiznat search condition diagram mě docela matou.

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

Vlastně byste to měli udělat jako dvě různá prohlášení:

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