Как изменить внешний вид в PostgreSQL
PostgreSQL не позволяет изменять вид (например, добавление столбца, изменение порядков столбцов, добавление критерия и т.д.), если он имеет зависимые объекты. Это действительно раздражает, так как вам нужно написать script для:
- Отбросьте все зависимые объекты,
- Измените представление,
- Снова заново создайте все зависимые объекты.
Я понимаю, что разработчики postgreSQL имеют очень разумные проблемы, чтобы предотвратить изменение представлений. Но у вас, ребята, есть какие-то сценарии/выстрелы, чтобы делать все эти материалы вручную за один проход?
Ответы
Ответ 1
Добавление новых столбцов не является проблемой, изменением типов данных или изменением порядка столбцов, где возникают проблемы.
-
Не меняйте порядок, это не
это важно, просто измените свой запрос:
SELECT a, b FROM view_name;
SELECT b, a FROM view_name;
-
Когда вам нужно изменить тип данных
столбца, вы должны проверить
зависимых объектов. Они могут
имеют проблемы с этим новым
тип данных. Просто дайте определение
этот объект и воссоздать после
изменения. Информационная_схема и
pg_catalog поможет вам.
- Внесите все изменения в один
сделка.
Ответ 2
Если я разместил дополнительный "drop view xyz; commit"; перед выражением "create or replace view xyz as...", по крайней мере во многих случаях я решаю проблему блокировки, описанную выше.