DROP VIEW¶
说明¶
视图的删除
参数¶
schema
视图所在的模式,缺省为当前模式。
viewname
要删除的视图名。
RESTRICT|CASCADE
- RESTRICT确保只有不存在依赖关系或完整性约束的视图可以被删除。
- CASCADE强制删除视图,并删除任何与本视图有依赖性的数据库对象。
默认为RESTRICT
注解
执行DROP VIEW语句的用户必须是该视图的创建者,或者是DBA。
示例¶
示例1: 删除视图
-- 清理环境
DROP VIEW view1 CASCADE;
DROP TABLE tab1 CASCADE;
-- 创建表并插入数据
CREATE TABLE tab1 (a INT);
INSERT INTO tab1 VALUES (100);
INSERT INTO tab1 VALUES (200);
INSERT INTO tab1 VALUES (300);
SELECT * FROM tab1 ORDER BY a;
A(int) |
------------
100 |
------------
200 |
------------
300 |
总数目:3
-- 创建视图
CREATE VIEW view1 AS SELECT * FROM tab1 ORDER BY a;
-- 查询视图
SELECT * FROM view1;
A(int) |
------------
100 |
------------
200 |
------------
300 |
总数目:3
-- 删除视图
DROP VIEW view1;
-- 删除表
DROP TABLE tab1;
示例2: 级联删除视图
-- 清理环境
DROP VIEW view3 CASCADE;
DROP VIEW view2 CASCADE;
DROP TABLE tab1 CASCADE;
-- 创建表并插入数据
CREATE TABLE tab2 (a INT);
INSERT INTO tab2 VALUES (100);
INSERT INTO tab2 VALUES (200);
INSERT INTO tab2 VALUES (300);
SELECT * FROM tab2 ORDER BY a;
A(int) |
------------
100 |
------------
200 |
------------
300 |
总数目:3
-- 创建视图
CREATE VIEW view2 AS SELECT * FROM tab2 ORDER BY a;
CREATE VIEW view3 AS SELECT * FROM view2 ORDER BY a;
-- 查询视图
SELECT * FROM view2;
A(int) |
------------
100 |
------------
200 |
------------
300 |
总数目:3
SELECT * FROM view3;
A(int) |
------------
100 |
------------
200 |
------------
300 |
总数目:3
-- 级联删除视图
DROP VIEW view2 CASCADE;
-- view3 已被级联删除,查询报错
SELECT * FROM view3;
ERROR, Relation "VIEW3" does not exist
-- 删除表
DROP TABLE tab2;