Страницы

Поиск по вопросам

четверг, 2 мая 2019 г.

Как изменить тип колонки на serial?

Есть таблица с заполненными данными:
CREATE TABLE "Виплата" ( old integer NOT NULL, "Код_договору" integer, "Дата" timestamp(0) without time zone, "Сума_виплат" text, "Оплата" boolean, "Код" integer, CONSTRAINT "Виплата_pkey" PRIMARY KEY (old) ) WITH ( OIDS=FALSE ); ALTER TABLE "Виплата" OWNER TO postgres;
Обязательно нужно изменить тип колонки "Код" на serial! Обычным ALTER: ALTER TABLE "Виплата" ALTER COLUMN "Код" type serial; не получается это сделать, потому что serial не тип ERROR: type "serial" does not exist ! Но сделать это очень нужно.
Каким способом можно это реализовать ?


Ответ

Тип SERIAL аналогичен полю, значение которого устанавливается из последовательности. Поэтому делаем так:
CREATE SEQUENCE code_seq; ALTER TABLE "Виплата" ALTER COLUMN "Код" SET DEFAULT nextval('code_seq');
Не знаю как на мове правильно будет "Последовательность_коду", поэтому просто code_seq В nextval() передаётся строка с название последовательности, поэтому там одинарные кавычки должны быть.

Комментариев нет:

Отправить комментарий