Что происходит с существующим представлением DB2, если таблица отбрасывается? - PullRequest
1 голос
/ 13 марта 2009

Если мы создали представление для существующей таблицы DB2, а затем удалили таблицу. Что будет с видом?

Ответы [ 4 ]

1 голос
/ 13 марта 2009

Вид становится недействительным / не работает. Попытки выбрать из него потерпят неудачу.

Чтобы попробовать это:

create table TEST_TABLE (
TEST_COL INTEGER
);

INSERT INTO TEST_TABLE VALUES(1);

SELECT * FROM TEST_TABLE;

create view TEST_VIEW AS
SELECT * FROM TEST_TABLE;

SELECT * FROM TEST_VIEW;

DROP TABLE TEST_TABLE;

SELECT * FROM TEST_VIEW;

Последнее утверждение дает ошибку:

[IBM][CLI Driver][DB2/NT] SQL0575N  View or materialized query table
"TEST_VIEW" cannot be used because it has been marked inoperative.
SQLSTATE=51024
0 голосов
/ 08 июня 2015

становится неработоспособным. Эту же информацию можно найти с помощью следующего запроса:

SELECT viewscheama,viewname,valid FROM syscat.views

. Для перкулярного представления, если столбец «Действительный» имеет любое значение, кроме «Y», то представление будет неработоспособным.

0 голосов
/ 26 ноября 2013

Ничего не случилось. Просто не используйте это представление. Вы можете заново создать таблицу, чтобы позже снова использовать представление.

0 голосов
/ 18 июня 2009

Когда представление недействительно, как показано в приведенном выше примере, DB2 позволит вам воссоздать это представление без его предварительного удаления. Это позволяет повторно запустить файлы DDL просмотра (или просто вывести столбец TEXT из SYSCAT.VIEWS и выполнить его).

...