Ответы:
два варианта: использовать SERIAL типа данных или создать последовательность и использовать эту последовательность в качестве значения по умолчанию для целого числа:
CREATE SEQUENCE your_seq;
CREATE TABLE foo(
id int default nextval('your_seq'::regclass),
other_column TEXT
);
INSERT INTO foo(other_column) VALUES ('bar') RETURNING *;
Если вы хотите сделать это в PGAdmin, это гораздо проще, чем с помощью командной строки. В PostgreSQL, похоже, чтобы добавить автоинкремент к столбцу, сначала нужно создать последовательность автоинкремента и добавить ее в необходимый столбец. Мне так понравилось.
1) Во-первых, вам нужно убедиться, что для вашей таблицы есть первичный ключ. Также сохраните тип данных первичного ключа в bigint или smallint. (Я использовал bigint, не смог найти тип данных, называемый serial, как упоминалось в других ответах в другом месте)
2) Затем добавьте последовательность, щелкнув правой кнопкой мыши по последовательности -> добавить новую последовательность . Если в таблице нет данных, оставьте последовательность как есть, не вносите никаких изменений. Просто сохраните это. Если данные существуют, добавьте последнее или наибольшее значение в столбце первичного ключа на вкладку Текущее значение в определениях, как показано ниже.
3) Наконец, добавьте строку nextval('your_sequence_name'::regclass)
к значению Default в вашем первичном ключе, как показано ниже.
Убедитесь, что имя последовательности здесь правильно. Это все, и автоматическое увеличение должно работать.
SERIAL
?
GENERATED BY DEFAULT AS IDENTITY
введенный с Postgres> = 10.