Задать вопрос
Alexandre888
@Alexandre888
Javascript-разработчик

Как сделать AUTO_INCREMENT в postgresql?

Чем можно заменить следующие строки из MySQL, в PostgreSQL?
ALTER TABLE `commands`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
  • Вопрос задан
  • 33644 просмотра
Подписаться 1 Простой 9 комментариев
Решения вопроса 1
Если вам нужно создать таблицу, то автоинкремент делается так:
CREATE TABLE commands (
id serial PRIMARY KEY
)

если нужно изменить таблицу, то тогда сначала создать последовательность, которую создаёт serial, а потом уже применить её к колонке
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Miron11
Пишу sql 20 лет. Срок :)
Мне больше нравятся секвенции. Около часа назад, когда нашел вопрос оказалось, что мой pgAdmin 4 серьёзно поотстал. Поставил новый, уже 64-х битовый, подсоединился к настольной службе, и только через GUI построил следующие объекты, никуда не торопясь. Все удивительно приятно и удобно. Надеюсь пригодится :)

CREATE SEQUENCE public.testincrement_sequence
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;

CREATE TABLE public.testincrement
(
i integer NOT NULL DEFAULT nextval('testincrement_sequence'::regclass),
a character varying(250) COLLATE pg_catalog."default",
dt timestamp without time zone,
un character varying(128) COLLATE pg_catalog."default"
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы