1

如果我们在现有 DB2 表上创建了一个视图,然后删除了该表。视图会发生什么?

4

4 回答 4

1

视图变得无效/无效。尝试从中选择将失败。

尝试一下:

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
于 2009-03-13T15:31:55.433 回答
0

没啥事儿。只是不要使用那个视图。您可以再次重新创建表,以便稍后再次使用该视图。

于 2013-11-26T08:08:50.773 回答
0

当视图失效时,如上例所示,DB2 将允许您重新创建该视图而无需先删除它。这使得重新运行您的视图 DDL 文件成为可能(或者简单地转储 SYSCAT.VIEWS 的 TEXT 列并执行它)。

于 2009-06-18T03:31:45.417 回答
0

它变得不起作用。可以使用以下查询找到相同的信息:

SELECT viewscheama,viewname,valid FROM syscat.views

. 对于特定视图,如果“有效”列具有除 'Y' 之外的任何值,则该视图将无效。

于 2015-06-08T11:49:06.240 回答