Изменить тип столбца с varchar на отметку времени
У меня есть таблица, которая определяется следующим образом:
CREATE TABLE session_requests
(
id character varying(255) NOT NULL,
authorization_enc character varying(255),
auto_close integer,
date_created character varying(255) DEFAULT '1970-01-01 01:00:00'::character varying,,
....
)
Я пытаюсь сделать
alter table session_requests alter column date_created type timestamp using date_created::timestamp;
ошибка, которую я получаю,
ERROR: default for column "date_created" cannot be cast automatically to type timestamp
У кого-нибудь есть предложения?
1 ответ
Решение
Сделай это за одну транзакцию. Вы даже можете сделать это в одном утверждении:
ALTER TABLE session_requests
ALTER date_created DROP DEFAULT
,ALTER date_created type timestamp USING date_created::timestamp
,ALTER date_created SET DEFAULT '1970-01-01 01:00:00'::timestamp;
В сторону: character varying(255)
почти всегда плохой (бессмысленный) выбор в Postgres. Больше: