Amazon Redshift
数据库开发人员指南 (API Version 2012-12-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

DROP VIEW

从数据库中删除视图。可以使用一条 DROP VIEW 命令删除多个视图。此命令无法撤消。

语法

Copy
DROP VIEW [ IF EXISTS ] name [, ... ] [ CASCADE | RESTRICT ]

参数

IF EXISTS

一个子句,指示如果指定的视图不存在,则命令不应进行任何更改,并返回一条指示视图不存在的消息,而不是以错误终止。

此子句在编写脚本时很有用,可使在 DROP VIEW 针对不存在的视图运行时脚本不会失败。

name

要删除的视图的名称。

CASCADE

一个子句,用于指示自动删除依赖该视图的对象,例如其他视图。

RESTRICT

一个子句,指示如果任何对象依赖该视图,则不删除该视图。此操作是默认操作。

示例

以下示例删除名为 event 的视图:

Copy
drop view event;

要删除具有依赖项的视图,请使用 CASCADE 选项。例如,假如我们从名为 EVENT 的表开始。接下来,我们使用 CREATE VIEW 命令创建 EVENT 表的 eventview 视图,如以下示例所示:

Copy
create view eventview as select dateid, eventname, catid from event where catid = 1;

现在,我们创建另一个名为 myeventview 的视图,该视图基于第一个视图 eventview

Copy
create view myeventview as select eventname, catid from eventview where eventname <> ' ';

此时创建了两个视图:eventviewmyeventview

myeventview 视图是以 eventview 为父视图的子视图。

要删除 eventview 视图,要使用的命令如下:

Copy
drop view eventview;

请注意,如果您在这种情况下运行此命令,会收到以下错误:

Copy
drop view eventview; ERROR: cannot drop view eventview because other objects depend on it HINT: Use DROP ... CASCADE to drop the dependent objects too.

要对此进行补救,请执行以下命令(按照错误消息中的建议):

Copy
drop view eventview cascade;

现在,已成功删除 eventviewmyeventview

以下示例删除 eventview 视图(如果存在);如果不存在该视图,则不执行任何操作并返回一条消息:

Copy
drop view if exists eventview;

本页内容: