enum postgresql

INSERT INTO holidays(num_weeks,happiness) VALUES (4, 'happy'); - из здешней маны.

Если я все правильно понял, тогда holidays - имя таблицы, num_weeks - наименование поля, happines тип данных. 4 - номер значения ячейки в типе happines, happy - значение 4-й ячейки которую мы хотим добавить.

Итак у меня есть таблица userlist, поле 'role' у которого есть тип данных my_enum, в котором есть значение 'admin',
Я хочу к значению админ добавить еще значения "user", к примеру. И получаю такой запрос.

INSERT INTO userlist(role, my_enum) VALUES (2, 'user');

Пропал кот, такие пироги. Как быть господа ?

ВложениеРазмер
er3.png48.79 kb

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

> holidays - имя таблицы,

> holidays - имя таблицы, num_weeks - наименование поля, happines тип данных
С чего бы? hapiness тоже имя поля.

Тип данных ENUM даёт вам возможность перечислить какие значения могут принимать данные этого типа. Так что сперва добавьте в ENUM значение, а уже затем можете добавлять это значение в таблицу, где есть поле этого типа.

Я закинул в my_enum, значения

Я закинул в my_enum, значения 'user', 'admin'
создал поле 'role' - присвоил ему тип данных my_enum, после чего я пытаюсь поставить по умолчанию 'user' и выбивает ошибка

ОШИБКА: колонка "role" имеет тип my_enum, но тип выражения по умолчанию name
HINT: Перепишите выражение или преобразуйте его тип.
В операторе:
ALTER TABLE "public"."userlist" ALTER COLUMN "role" SET DEFAULT user

А вы документацию почитайте.

А вы документацию почитайте. Чай на русском есть:
http://postgresql.ru.net/manual/datatype-enum.html
возможно и вопросы отпадут

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023