Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Изменение типа колонки с varchar на timestamp without time zone / 7 сообщений из 7, страница 1 из 1
17.03.2016, 20:45
    #39194872
tortilka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа колонки с varchar на timestamp without time zone
Есть колонка с данными в таблице. Тип колонки character varying, надо изменить тип на timestamp without time zone.
пробую это сделать так, ругается что надо использовать USING :
Код: sql
1.
2.
ALTER TABLE tb_table
   ALTER COLUMN column_date TYPE timestamp without time zone;

. Подскажите пожалуйста какое правило надо задать после слова USING в документации про это очень мало написано. Какой там синтаксис? Я конечно могу выгрузить данные столбца во временную таблицу удалить столбец , создать новый с новым типом и загрузить из временной...
...
Рейтинг: 0 / 0
17.03.2016, 21:20
    #39194900
ursido
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа колонки с varchar на timestamp without time zone
tortilka,

Пробуйте читать еще более внимательно: http://www.postgresql.org/docs/9.2/static/sql-altertable.html
Особое внимание обратите на примеры.
авторTo change an integer column containing UNIX timestamps to timestamp with time zone via a USING clause:

ALTER TABLE foo
ALTER COLUMN foo_timestamp SET DATA TYPE timestamp with time zone
USING
timestamp with time zone 'epoch' + foo_timestamp * interval '1 second';

The same, when the column has a default expression that won't automatically cast to the new data type:

ALTER TABLE foo
ALTER COLUMN foo_timestamp DROP DEFAULT,
ALTER COLUMN foo_timestamp TYPE timestamp with time zone
USING
timestamp with time zone 'epoch' + foo_timestamp * interval '1 second',
ALTER COLUMN foo_timestamp SET DEFAULT now();


Скорее всего Вам нужно вписать конвертацию строки в дату в предложение USING.
...
Рейтинг: 0 / 0
17.03.2016, 21:34
    #39194908
tortilka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа колонки с varchar на timestamp without time zone
ursido, я пытаюсь это сделать
Код: sql
1.
2.
3.
ALTER TABLE tb_table
   ALTER COLUMN column_date SET DATA TYPE timestamp without time zone
   USING CAST(column_date  AS timestamp without time zone);


Пишет что нельзя изменить тип колонки которое используется в правилом, а как правильно написать я не знаю. Я понимаю что надо указать правило преобразования, но как правильно это сделать?
...
Рейтинг: 0 / 0
18.03.2016, 09:08
    #39195063
ursido
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа колонки с varchar на timestamp without time zone
tortilka,

Эм. Может быть под "правилом" понимается "руль" (RULE)?

Посмотрите, есть ли связанные с этой таблицей рули (отображение pg_rules).
...
Рейтинг: 0 / 0
18.03.2016, 10:29
    #39195121
tortilka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа колонки с varchar на timestamp without time zone
ursido,
нет там правил, связанных с этой таблицей. И мне кажется не об этих правилах идет речь.
...
Рейтинг: 0 / 0
18.03.2016, 10:47
    #39195136
ursido
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа колонки с varchar на timestamp without time zone
tortilka,

Приведите полный текст ошибки.
...
Рейтинг: 0 / 0
18.03.2016, 15:26
    #39195496
tortilka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа колонки с varchar на timestamp without time zone
ursido, спасибо, эта колонка была в представлении. Просто невнимательность. Сорри, тема закрыта.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Изменение типа колонки с varchar на timestamp without time zone / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]