Как задать ограничение (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.