Junior — Middle
74
Поддерживается ли в PostgreSQL тип данных ENUM и как он используется?
Answer from AI
sobes.tech AI
Да, в PostgreSQL поддерживается тип данных ENUM, который позволяет создавать перечисления с фиксированным набором значений.
Использование ENUM удобно, когда нужно ограничить поле определённым списком вариантов, например, статус заказа или тип пользователя.
Пример создания ENUM типа:
CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy');
Создание таблицы с полем ENUM:
CREATE TABLE person (
name TEXT,
current_mood mood
);
Вставка данных:
INSERT INTO person (name, current_mood) VALUES ('Alice', 'happy');
Преимущества ENUM:
- Гарантия, что в поле будут только допустимые значения.
- Более компактное хранение по сравнению с текстом.
Недостатки:
- Изменение списка значений требует ALTER TYPE.
- Меньшая гибкость по сравнению с отдельной таблицей и внешним ключом.
Таким образом, ENUM в PostgreSQL — удобный способ ограничить значения поля фиксированным набором.