Использование типа ENUM в PostgeSQL без его предварительного определения - PullRequest
0 голосов
/ 17 октября 2019

Обычно, для добавления столбца типа enum к существующей таблице в PostgreSQL, нам нужно сначала создать его с помощью оператора CREATE TYPE. Мне было интересно, есть ли способ сделать то же самое более или менее так:

ALTER TABLE tbl ADD COLUMN new_col ENUM('foo','bar');

т.е. без определения перечисления вначале.

1 Ответ

1 голос
/ 17 октября 2019

Вы не можете использовать такие ярлыки.

Будьте осторожны с типами перечислений. Они хороши, но они хороши, только если вы можете быть на 100% уверены, что ярлыки никогда не изменятся. Например, перечисление для округов мира - плохая идея.

Основной недостаток перечислений в том, что вы никогда не сможете удалить метки . Это потому, что это будет означать обновление всех таблиц, которые используют тип.

Если вы не уверены, используйте внешний ключ для таблицы поиска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...