Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / PostgreSQL |
![]() ![]() |
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] Ответить | Цитировать Сообщить модератору |
Maxim Boguk Member Откуда: Melbourne, Австралия Сообщений: 4581 |
Misha111, база не хранит исходного когда view а только распарсенное представление где названия таблиц на relid заменены поэтому при переименовывании автоматически и меняется (так как relid остается тот же). вот обратное поведение вообще нормально никак не получить у views. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru |
3 фев 21, 11:13 [22273698] Ответить | Цитировать Сообщить модератору |
Все форумы / PostgreSQL | ![]() |