Тупик с alter table.

  • Автор темы trompert
  • Дата начала

trompert

Guest
Тупик с alter table.

Постгрес 7.4.
Возникла необходимость изменить тип поля в таблице. Пример
BEGIN;
ALTER TABLE tab ADD COLUMN new_col new_data_type;
UPDATE tab SET new_col = CAST(old_col AS new_data_type);
ALTER TABLE tab DROP COLUMN old_col;
COMMIT;
не работает - так как не могу удалить это поле.
оно завязано еще на десяток представлений и столько же функций.
Как быть?
 

CMHungry

Guest
Re: Тупик с alter table.

ALTER TABLE tab DROP COLUMN old_col;
COMMIT;
не работает - так как не могу удалить это поле.
оно завязано еще на десяток представлений и столько же функций.
Как быть?
сохранить все зависимые объекты (их код)
alter table tab drop column old_col cascade;
пересоздать зависимые объекты
 

trompert

Guest
Re: Re: Тупик с alter table.

Originally posted by CMHungry
сохранить все зависимые объекты (их код)
alter table tab drop column old_col cascade;
пересоздать зависимые объекты
К тому я и пришел. Еще один повод перейти 8-ку.
А есть команда которая выводит список зависимых объектов или придется самому смотреть?
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Re: Re: Re: Тупик с alter table.

Автор оригинала: trompert
А есть команда которая выводит список зависимых объектов или придется самому смотреть?
я думаю, придётся лезть за такой инфой в системные таблицы, куда-то в район pg_depend.
 

CMHungry

Guest
Re: Re: Re: Re: Тупик с alter table.

EMS postgresql manager покажет зависимости и вытащит sql-код

триал в сети лежит, спокойно вытягивается и как раз для этой цели подходит
 

trompert

Guest
Re: Re: Re: Re: Re: Тупик с alter table.

Originally posted by CMHungry
EMS postgresql manager покажет зависимости и вытащит sql-код

триал в сети лежит, спокойно вытягивается и как раз для этой цели подходит
Классная прога, кстати! уговариваю начальство купить.
Спасибо всем за советы.
 
Сверху