Как отредактировать представление в DB2 IBM iseries вместо удаления, а затем снова создать его? - PullRequest
4 голосов
/ 17 июня 2011

Как я могу изменить или отредактировать представление в DB2 через System i Navigator? Я не знаю как, так как он удаляет другие представления, построенные на нем.

1 Ответ

4 голосов
/ 03 июля 2013

Нет способа изменить вид с помощью Навигатора iSeries. Однако, если вы открыты для использования оператора SQL И вы находитесь на версии 7.1 или более поздней, вы можете использовать новую команду «СОЗДАТЬ ИЛИ ЗАМЕНИТЬ»: Синтаксис SQL СОЗДАТЬ ИЛИ ЗАМЕНИТЬ .

Это позволит вам изменять существующие представления без предварительного удаления зависимых объектов. Например, рассмотрим представление с именем «VIEW2», которое использует столбец с именем «DESC» из «VIEW1». Вы можете добавить столбец к «VIEW1», не затрагивая «VIEW2», используя следующую команду:

CREATE OR REPLACE VIEW MYSCHEMA.VIEW1 AS
    SELECT DESC, NEWCOL FROM MYSCHEMA.MYTABLE;

Аналогично, вы можете удалить столбец из «VIEW1», не затрагивая другие представления. Единственное ограничение: вы не можете удалить столбец, который используется другим представлением (или функцией, псевдонимом и т. Д.). Если вы попытаетесь удалить столбец, от которого зависит другое представление, вы получите сообщение об ошибке.

Использование метода «REPLACE» также сохранит все разрешения / ограничения безопасности.

Следует отметить, что более идеальным методом было бы автоматизировать создание представлений / функций / procs / aliases / и т. Д. С помощью сценариев. Это позволит вам последовательно отбрасывать и воссоздавать зависимые объекты. Это предполагает некоторый способ автоматизации управления вашей базой данных и может представлять проблемы, если у вас очень большое количество зависимых объектов (или если у вас большое количество индексированных представлений.) Самый большой риск при наличии большого количества «REPLACE» Сценарии состоят в том, что они будут применены неправильно, либо не применяя один из сценариев, либо применяя их в неправильном порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...