powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / редактирование зависимых вьюх
11 сообщений из 11, страница 1 из 1
редактирование зависимых вьюх
    #34856531
AndreyVo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
коллеги,
вынужденно переполз с MSSQL на Postgre.
Столкнулся со следующей ситуацией.
Создаю вьюху, использую ее в процедурах - далее, если возникает необходимость эту вьюху изменить, приходится грохать сначала процедуру, которая ее использует - менять вьюху и заново создавать процедуру.
На MS такой проблемы не было - можно было спокойно внести изменения во view и на связанные объекты это никак не влияло.
Можно ли как то объехать эту ситуацию? Может как-то каскадно обновлять все связанные объекты?

Спасибо.
...
Рейтинг: 0 / 0
редактирование зависимых вьюх
    #34856575
v0v4ik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вам без изменения структуры view никак? Ну, тогда используйте EXECUTE.
...
Рейтинг: 0 / 0
редактирование зависимых вьюх
    #34856613
AndreyVo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению, в процессе разработки многое приходится менять - добавляется например какое-то поле в таблицу на которую вьюха опирается и нужно его добавить или в самой вьюхе нужно некое вычисляемое поле прописать.

EXECUTE может решить ряд проблем в теле процедуры, но есть ситуации когда приходится возвращать SET OF view из хранимки -и в этом случае те же грабли.
...
Рейтинг: 0 / 0
редактирование зависимых вьюх
    #34856873
Фотография aov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну тут ведь и такой момент есть: допустим есть такая вот функция:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
....
declare
   rw vw_test;
begin
for rw in select f1, f2, f3 from ... loop
   return  next rw;
end loop
а допустим вы добавили во вьюху ещё f4 - или ещё интереснее - грохнули f2. и как быть тогда с вашей функцией постгресу? думаю в мсскл возможностей таких манёвров не было - и не было и проблем таких. хотя - в 8.3 бетте что-то вроде есть на эту тему - может и будет так же - я бегло читал - не полностью понял. с англицким не оч свободно. и там ещё возможно будет в плпгскл при возврате setof не париться с return next - а писать return select... И ещё и вроде как при этом перфоменс лучше будет.
...
Рейтинг: 0 / 0
редактирование зависимых вьюх
    #34856934
AndreyVo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aov
а допустим вы добавили во вьюху ещё f4 - или ещё интереснее - грохнули f2. и как быть тогда с вашей функцией постгресу?
ну дак я ж не отказываюсь модифицировать процедуру при изменении вьюхи -вопрос лишь в том, что я не могу вьюху изменить без убиения связанной хранимки. Вот как раз такая последовательность операций в MS не вызывает никаких противоречий - изменил вьюху, потом свободно редактируй процедуры.

Не знаю у кого как, но у меня достаточно громоздкий проект и таких вот процедур подвязанных на одну вьюху может быть гораздо больше чем одна - и все их приходится убивать для того, чтобы добавить столбец или изменить его тип ((. - Очень отвлекает такое шаманство.
...
Рейтинг: 0 / 0
редактирование зависимых вьюх
    #34856978
AndreyVo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aovи там ещё возможно будет в плпгскл при возврате setof не париться с return next - а писать return select... И ещё и вроде как при этом перфоменс лучше будет.

return select ... - должно быть приятная штука, потому как set of мне не шибко нравится - хотя может не привык еще
...
Рейтинг: 0 / 0
редактирование зависимых вьюх
    #34857148
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Известная тема (я нарывался на изменение типа - Type, который использовался в процедурах). На мой взгляд, это слабое место постгреса - в остальном он мне нравится.
В оракле пакет (процедура) стали бы просто невалидными. В постгресе видимо у процедур нет статусов, и поэтому для подстраховки сделали такую фишку. Это мое предположение - я не настолько хорошо знаю внутренности Постгреса.
...
Рейтинг: 0 / 0
редактирование зависимых вьюх
    #34857193
AndreyVo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да у меня пока что тоже особых претензий к постгресу нет, но озвученная мной тема напрягает
...
Рейтинг: 0 / 0
редактирование зависимых вьюх
    #34858839
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreyVoда у меня пока что тоже особых претензий к постгресу нет, но озвученная мной тема напрягает
Вообще, для такого дела у меня написана хранимка, которая вертает взад скрипт с дропами зависимых элементов, созданием вьюхи и пересозданием зависимых элементов. Остается в этом скрипте только вьюху поправить как надо и почесал.
Где-то у меня даже валялась хранимка, которая таблицу через дроп пересоздает. Понадобилось, чтобы табличка была не просто табличкой, а наследницей чего-то базового. Констрейнтов на таблу было более 500 и восстанавливались они минут 20, но ништяк, работало.
...
Рейтинг: 0 / 0
редактирование зависимых вьюх
    #34860364
AndreyVo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kruchinin Pahan
Вообще, для такого дела у меня написана хранимка.

тоже пришел к такому решению - других вариантов действиетльно пока не наблюдается - может быть появится в каком-нибудь GUI автоматизация такой задачи.
...
Рейтинг: 0 / 0
редактирование зависимых вьюх
    #34861844
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreyVo Kruchinin Pahan
Вообще, для такого дела у меня написана хранимка.

тоже пришел к такому решению - других вариантов действиетльно пока не наблюдается - может быть появится в каком-нибудь GUI автоматизация такой задачи.
EMS обещали в 4-ой версии добавить эту фичу. Сам не проверял, потому как стоит 3.8 официально купленная.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / редактирование зависимых вьюх
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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