#postgresql
#postgresql
Вопрос:
Я не знаю, чего мне здесь не хватает. Я просто хочу, чтобы здесь был автоматически увеличенный идентификатор. Я думал, что установка PK в true сделает это:
Затем попытался запустить этот запрос:
INSERT INTO public.social_type(name)
VALUES ('personal blog');
Но получил эту ошибку:
ERROR: null value in column "id" violates not-null constraint
DETAIL: Failing row contains (null, personal blog).
SQL state: 23502
Ответ №1:
тип integer
не означает, что он будет генерировать значение. Для этого вместо этого выберите serial
тип
Комментарии:
1. В современных версиях Postgres столбцы идентификаторов предпочтительнее, чем serial
2. что значит столбец идентификаторов, это тип? как я могу указать это через графический интерфейс? Как мне, по сути, это сделать, но через графический интерфейс, какие параметры выполняют то же самое, что и
column_name type GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY[
3. и как вы можете сделать столбец идентификатором после факта через графический интерфейс, а не через скрипты?
4. Щелкните правой кнопкой мыши по имени столбца -> Свойства -> Ограничения -> Тип. Выберите
IDENTITY
. Измените параметры по желанию. Затем вернитесь к имени таблицы -> Свойствам -> Столбцам и создайте столбецPRIMARY KEY
.