Первичный ключ не AUTO INCREMENT в PostgreSQL - PullRequest
0 голосов
/ 12 мая 2019

У меня есть таблица Category, и у меня есть 3 столбца category_id, category_name,category_description.Когда я выполняю скрипт вставки без параметра category_id, у меня появляется эта ошибка:

ERROR:  null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (null, T_601, Yojimbo).
SQL state: 23502

Это мой скрипт выбора:

INSERT INTO category ( category_name, category_description)
    VALUES ('T_601', 'Yojimbo');

Это изображение моей таблицы: t

Ответы [ 3 ]

2 голосов
/ 12 мая 2019

Измените тип данных на serial, который является способом написания Postgres auto_increment. Если у вас есть не- NULL целочисленный столбец без значения по умолчанию, при попытке вставки вы получите ошибку.

Если вы назначите значение по умолчанию, то уникальное ограничение (часть primary key) просто создаст ошибку повторяющегося ключа при второй вставке.

0 голосов
/ 12 мая 2019

Используйте следующее для добавления серийного номера в столбец category_id

CREATE SEQUENCE cateogry_id_seq;
ALTER TABLE category ALTER COLUMN category_id SET DEFAULT nextval('cateogry_id_seq');

Теперь столбец будет автоматически увеличен, и вам не нужно вводить столбец catgory_id в запросах на вставку

0 голосов
/ 12 мая 2019

Используется идентификатор в Sql для автоматического увеличения

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