SQL đặt các giá trị được phép cho một cột


8

Tôi muốn tạo một ALTER TABLEbiểu thức có thêm một cột mới và đặt một giá trị mặc định và phần bổ sung xác định các giá trị được phép cho cột đó. Đó là một cột văn bản và được phép chỉ là 'value1', 'value2' và 'value3'. Mặc định phải là 'value1'

Theo sơ đồ cú pháp sau:

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

Tôi đang đến điểm này

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

nhưng tôi hoàn toàn không chắc chắn làm thế nào để thiết lập các giá trị được phép.

Có thể làm cho đôi khi như

CONSTRAINT KIỂM TRA new_column IN ('value1', 'value2', 'value3)

? Tôi phải thừa nhận search conditionsơ đồ khá khó hiểu với tôi.

Câu trả lời:


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

1
@Phil - Ngoài govẻ hợp lệ theo cách đọc sơ đồ của tôi và hoạt động tốt trong fiddle
Martin Smith

5

Bạn thực sự nên làm điều này như hai tuyên bố khác nhau:

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'))

Lưu ý, đây là cú pháp của SQL Server vì tôi đã trả lời câu hỏi trước khi nó có thẻ Oracle và dường như là SQL Server đối với tôi.
cfradenburg

0

Máy chủ SQL:

ALTER TABLE table_name
    ADD CONSTRAINT constraint_name CHECK (column_name IN ('aaa', 'bbb', ...))
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.