

 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/)。

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

# CREATE SCHEMA
<a name="r_CREATE_SCHEMA"></a>

為目前資料庫定義新的結構描述。

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

以下是 CREATE SCHEMA 所需的權限：
+ 超級使用者
+ 具有 CREATE SCHEMA 權限的使用者

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

```
CREATE SCHEMA [ IF NOT EXISTS ] schema_name [ AUTHORIZATION username ]
           [ QUOTA {quota [MB | GB | TB] | UNLIMITED} ] [ schema_element [ ... ]

CREATE SCHEMA AUTHORIZATION username[ QUOTA {quota [MB | GB | TB] | UNLIMITED} ] [ schema_element [ ... ] ]
```

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

 IF NOT EXISTS   
此子句會指出，若指定的結構描述已存在，則命令不應進行任何變更，且應傳回結構描述存在的訊息，而不是在發生錯誤的情況下終止。  
此子句在編寫指令碼時很實用，如此指令碼就不會因為 CREATE SCHEMA 嘗試建立已存在的結構描述而失敗。

 *schema\$1name*   
新結構描述的名稱。結構描述名稱不可以是 `PUBLIC`。如需有效名稱的相關資訊，請參閱 [名稱與識別碼](r_names.md)。  
[search\$1path](r_search_path.md) 組態參數中結構描述的清單會決定，在沒有結構描述名稱的情況下參考名稱相同的物件時，這些物件的優先順序。

AUTHORIZATION   
將所有權提供給指定使用者的子句。

 *username*   
結構描述擁有者的名稱。

 *schema\$1element*   
要在結構描述內建立的一個或多個物件的定義。

QUOTA  
所指定之結構描述可以使用的磁碟空間數上限。這個空間是集體磁碟使用量。它包含所有永久資料表、所指定之結構描述下的具體化檢視，以及在每個計算節點上具有 ALL 分佈之所有資料表的複本。結構描述配額不會將暫時資料表納入考量，此暫時資料表是作為暫時命名空間或結構描述一部分而建立的。  
若要檢視設定的結構描述配額，請參閱 [SVV\$1SCHEMA\$1QUOTA\$1STATE](r_SVV_SCHEMA_QUOTA_STATE.md)。  
若要檢視超出結構描述配額的記錄，請參閱 [STL\$1SCHEMA\$1QUOTA\$1VIOLATIONS](r_STL_SCHEMA_QUOTA_VIOLATIONS.md)。  
Amazon Redshift 會將選取的值轉換為 MB。GB 是您未指定值時的預設測量單位。  
您必須是資料庫超級使用者，才能設定和變更結構描述配額。不是超級使用者，但具有 CREATE SCHEMA 許可的使用者可以建立具有已定義配額的結構描述。當您在未定義配額的情況下建立結構描述時，結構描述會有無限的配額。當您將配額設為低於結構描述所使用的目前值時，除非您釋放磁碟空間，否則 Amazon Redshift 不允許進一步擷取。DELETE 陳述式會從資料表刪除資料，並只在 VACUUM 執行時，才會釋出磁碟空間。  
Amazon Redshift 會在確認交易之前檢查每筆交易是否存在配額違規情況。Amazon Redshift 會根據設定的配額，檢查每個已修改結構描述的大小 (結構描述中所有資料表使用的磁碟空間)。因為配額違規檢查發生在交易結束時，所以在確定之前，大小限制可以暫時超過交易內的配額。當交易超過配額時，Amazon Redshift 會停止交易、禁止後續導入，並還原所有變更，直到您釋放磁碟空間為止。由於背景 VACUUM 和內部清除，有可能在交易取消之後您檢查結構描述時結構描述不是完整的。  
在例外情況下，Amazon Redshift 會忽略配額違規，並在特定情況下遞交交易。Amazon Redshift 會針對僅由下列一或多個陳述式組成的交易執行此操作，而且在相同交易中沒有 INSERT 或 COPY 擷取陳述式：  
+ DELETE
+ TRUNCATE
+ VACUUM
+ DROP TABLE
+ 只在將資料從完整結構描述移到另一個非完整結構描述時，ALTER TABLE APPEND 才適用

 *UNLIMITED*   
Amazon Redshift 不會限制結構描述總大小的增長。

## 限制
<a name="r_CREATE_SCHEMA-limit"></a>

Amazon Redshift 會對結構描述強制實施下列限制。
+ 每個資料庫最多 9900 個結構描述。

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

下列範例會建立名為 US\$1SALES 的結構描述，並將所有權提供給使用者 DWUSER。

```
create schema us_sales authorization dwuser;
```

下列範例會建立名為 US\$1SALES 的結構描述、將擁有權提供給使用者 DWUSER，並將配額設定為 50 GB。

```
create schema us_sales authorization dwuser QUOTA 50 GB;
```

若要檢視新的結構描述，請查詢 PG\$1NAMESPACE 目錄資料表，如下所示。

```
select nspname as schema, usename as owner
from pg_namespace, pg_user
where pg_namespace.nspowner = pg_user.usesysid
and pg_user.usename ='dwuser';

   schema |  owner
----------+----------
 us_sales | dwuser
(1 row)
```

下列範例會建立 US\$1SALES 結構描述，或不執行任何動作，並於該結構描述已存在時傳回訊息。

```
create schema if not exists us_sales;
```