Страницы

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

понедельник, 24 февраля 2020 г.

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

#postgresql


Есть таблица с заполненными данными: 

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  ! Но сделать
это очень нужно. 

Каким способом можно это реализовать ?
    


Ответы

Ответ 1



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

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

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