Есть таблица с заполненными данными:
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() передаётся строка с название последовательности, поэтому там одинарные кавычки должны быть.
Комментариев нет:
Отправить комментарий