Provided by: manpages-zh_1.6.3.6-1_all bug

NAME

       CREATE DOMAIN - 定義一個新域

SYNOPSIS

       CREATE DOMAIN name [AS] data_type
           [ DEFAULT expression ]
           [ constraint [ ... ] ]

       where constraint is:

       [ CONSTRAINT constraint_name ]
       { NOT NULL | NULL | CHECK (expression) }

DESCRIPTION 描述

       CREATE DOMAIN 建立一個新的資料域。 定義域的使用者成為其所有者。

        如果給出一個模式名稱(比如,CREATE  DOMAIN myschema.mydomain ...), 那麼該域是在指定的模
       式中建立的。否則它會在當前模式中建立。 域名字必需在其所在模式中的現有型別和域中唯一。

        域可以便於我們把不同表之間的公共域抽取到一個位置進行維護。 比如,一個電子郵件地址欄位可能
       在多個表中使用,所有的都是同樣的屬性。  我們可以定義並使用一個域,而不是分別設定每個表的約
       束。

PARAMETERS 引數

       name
               要建立的域名字(可以有模式修飾)。

       data_type
               域的下層資料型別。它可以包含陣列宣告字。

       DEFAULT expression
              DEFAULT 子句為域資料型別的欄位宣告一個預設值。 該值是任何不含變數的表示式(但不允許
              子查詢)。  預設表示式的資料型別必需匹配域的資料型別。如果沒有宣告預設值, 那麼預設
              值就是空值。

               預設表示式將用在任何不為該欄位宣告數值的插入操作。      如果為特定的欄位聲明瞭預設
              值,那麼它覆蓋任何和該域相關聯的預設值。 然後,域的預設覆蓋任何與下層資料型別相關的
              預設。

       CONSTRAINT constraint_name
               一個約束的可選名稱。如果沒有宣告,系統生成一個名字。

       NOT NULL
               這個域的數值不允許為 NULL。

       NULL
               這個域的數值允許為空。它是預設。

               這個子句只是用於和非標準的 SQL 資料庫相容用。 我們不建議在新的應用中使用它。

       CHECK (expression)
               CHECK 子句宣告完整性約束或者是測試,域地數值必須滿足這些要求。  每個約束必須是一個
              生成一個布林結果的表示式。它應該使用名字 VALUE  來引用被測試的數值。

               目前,CHECK 表示式不能包含子查詢,也不能引用除 VALUE 之外的變數。

EXAMPLES 例子

        這個例子建立了 country_code 資料型別並且在一個表定義中使用了該型別:

       CREATE DOMAIN country_code char(2) NOT NULL;
       CREATE TABLE countrylist (id integer, country country_code);

COMPATIBILITY 相容性

       CREATE DOMAIN 命令符合 SQL 標準。

SEE ALSO 參見

       DROP DOMAIN [drop_domain(7)]

譯者

       Postgresql 中文網站 何偉平 <laser@pgsqldb.org>

       本頁面中文版由中文 man 手冊頁計劃提供。
       中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh