

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# DROP VIEW
<a name="r_DROP_VIEW"></a>

從資料庫移除檢視。使用單一 DROP VIEW 命令即可捨棄多個檢視。此命令無法還原。

## 所需權限
<a name="r_DROP_VIEW-privileges"></a>

以下是 DROP VIEW 所需的權限：
+ 超級使用者
+ 具有 DROP VIEW 權限的使用者
+ 檢視擁有者

## 語法
<a name="r_DROP_VIEW-synopsis"></a>

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

## Parameters
<a name="r_DROP_VIEW-parameters"></a>

IF EXISTS  
此子句會指出，若指定的檢視不存在，則命令不應進行任何變更，且應傳回檢視不存在的訊息，而不是在發生錯誤的情況下終止。  
此子句在編寫指令碼時很實用，如此指令碼就不會因為 DROP VIEW 對不存在的檢視執行而失敗。

 *name*   
要移除的檢視名稱。

CASCADE  
此子句指出，自動捨棄取決於檢視的物件，例如其他檢視。  
若要建立不相依於其他資料庫物件的檢視，例如檢視和資料表，請在檢視定義中包含 WITH NO SCHEMA BINDING 子句。如需詳細資訊，請參閱[CREATE VIEW](r_CREATE_VIEW.md)。  
請注意，如果您包含 CASCADE，且捨棄的資料庫物件計數累計到十個或更多，則資料庫用戶端可能不會在摘要結果中列出所有捨棄的物件。通常是因為 SQL 用戶端工具對傳回的結果設有預設限制。

RESTRICT  
此子句指出，若有任何物件相依於檢視，則不捨棄檢視。這是預設動作。

## 範例
<a name="r_DROP_VIEW-examples"></a>

下列範例會捨棄名為 *event* 的檢視：

```
drop view event;
```

若要移除有相依性的檢視，請使用 CASCADE 選項。例如，假設我們有名為 EVENT 的資料表。然後使用 CREATE VIEW 命令建立 EVENT 資料表的 eventview 檢視，如下列範例所示：

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

現在我們建立另一個檢視，名為 *myeventview*，這是根據第一個檢視 *eventview* 所建立：

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

此時已建立兩個檢視：*eventview* 和 *myeventview*。

*myeventview* 檢視是子檢視，*eventview* 是其父檢視。

若要刪除 *eventview* 檢視，明顯可使用下列命令：

```
drop view eventview;
```

請注意，如果您在此情況下執行此命令，將會收到下列錯誤：

```
drop view eventview;
ERROR: can't drop view eventview because other objects depend on it
HINT: Use DROP ... CASCADE to drop the dependent objects too.
```

若要解決此情況，請執行下列命令 (如錯誤訊息中所建議)：

```
drop view eventview cascade;
```

*eventview* 和 *myeventview* 現在都已成功捨棄。

下列範例會捨棄 *eventview* 檢視 (如存在的話)，或不執行任何動作，並於檢視不存在時傳回訊息：

```
drop view if exists eventview;
```