Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 alter table rename приводит к изменению зависимых view  [new]
Misha111
Member

Откуда:
Сообщений: 36
всех приветствую.
наткнулся на интересную особенность:
create table t_t1 (a1 int);
create or replace view v_t1 as select * from t_t1;
select pg_get_viewdef('v_t1'::regclass);
 pg_get_viewdef
-----------------
  SELECT t_t1.a1+
    FROM t_t1;
alter table t_t1 rename to t_t2;
select pg_get_viewdef('v_t1'::regclass);
 pg_get_viewdef
-----------------
  SELECT t_t2.a1+
    FROM t_t2;
drop table t_t2 cascade;


в доке описания этого поведения не нашел.
я так понимаю это всеж фича - иначе пришлось бы выдавать ошибку о существовании зависимых объектов.
хотя имхо ренаме каскад было бы правильней.
3 фев 21, 10:56    [22273682]     Ответить | Цитировать Сообщить модератору
 Re: alter table rename приводит к изменению зависимых view  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4581
Misha111,

база не хранит исходного когда view а только распарсенное представление где названия таблиц на relid заменены
поэтому при переименовывании автоматически и меняется (так как relid остается тот же).

вот обратное поведение вообще нормально никак не получить у views.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
3 фев 21, 11:13    [22273698]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить