SQL устанавливает допустимые значения для столбца


8

Я хочу сделать ALTER TABLEвыражение, которое добавляет новый столбец и устанавливает значение по умолчанию, а также определяет допустимые значения для этого столбца. Это текстовый столбец, и допустимыми должны быть только «значение1», «значение2» и «значение3». По умолчанию должно быть «значение1»

Согласно следующим синтаксическим диаграммам:

введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь

Я добираюсь до этой точки

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

но я абсолютно не уверен, как установить допустимые значения.

Можно ли сделать что-то подобное

CONSTRAINT CHECK new_column IN ('значение1', 'значение2', 'значение3)

? Я должен признать, что search conditionдиаграмма довольно смущает меня.

Ответы:


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

1
@Phil - Помимо того, что goвыглядит правильно для моего чтения диаграммы и отлично работает в Oracle sql fiddle
Martin Smith

5

Вы должны сделать это как два разных утверждения:

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.