Как задать ограничение (constraint) для столбца на количество вводимых значений?

Нужно в PostgreSQL задать ограничение для столбца на количество допустимых значений? Например, я хочу задать что бы уже существующий столбец мог принимать только максимум 10 значений


Ответы (2 шт):

Автор решения: Andrew Bystrov

создайте констрейнт, которые будет выполнять проверку:

alter table myTable
add constraint checkConstraint
check (myColumn in ('value1', 'valiu2', 'value3'));

можно подсмотреть в этот туториал

→ Ссылка
Автор решения: asanisimov

Можно сделать Enum столбец. По-мимо выполнения задачи, он позволяет прилично экономить память. пример:

CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy');
CREATE TABLE person (
    name text,
    current_mood mood
);

Отмечу, что такие типы регистрозависимы ('ok' != 'Ok') . В последствии тип можно добавить значениями через ALTER TYPE.

Подробнее.

→ Ссылка