Sobes.tech
Junior — Middle
75

Поддерживается ли в PostgreSQL тип данных ENUM и как он используется?

Ответ от нейросети

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 — удобный способ ограничить значения поля фиксированным набором.