web-dev-qa-db-fra.com

SQL définit les valeurs autorisées pour une colonne

Je veux faire un ALTER TABLE expression qui ajoute une nouvelle colonne et définit une valeur par défaut et définit en outre les valeurs autorisées pour cette colonne. Il s'agit d'une colonne de texte et autorisée ne doit être que "valeur1", "valeur2" et "valeur3". La valeur par défaut doit être 'value1'

Selon les diagrammes de syntaxe suivants:

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

J'arrive à ce point

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

mais je ne sais absolument pas comment définir les valeurs autorisées.

Est-il possible de faire quelque chose comme

CONSTRAINT CHECK new_column IN ('valeur1', 'valeur2', 'valeur3)

? Je dois admettre le search condition le diagramme me dérange beaucoup.

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

Vous devez en fait le faire comme deux instructions différentes:

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

Serveur SQL:

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