如果我们在现有DB2表上创建了一个视图,然后删除该表。视图会发生什么?
答案 0 :(得分: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
答案 1 :(得分:0)
当视图失效时,如上例所示,DB2将允许您重新创建该视图而不先删除它。这样就可以重新运行视图DDL文件(或者只是转储SYSCAT.VIEWS的TEXT列并执行它)。
答案 2 :(得分:0)
什么都没发生。只是不要使用该视图。您可以再次重新创建表格以便稍后再次使用该视图。
答案 3 :(得分:0)
它变得不起作用。 使用以下查询可以找到相同的信息:
SELECT viewscheama,viewname,valid FROM syscat.views
。 对于特定视图,如果"有效"列具有“Y'”之间的任何值。那么视图将无效。