<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # CREATE DOMAIN ## Name CREATE DOMAIN?--?定義一個新域 ## Synopsis ``` CREATE DOMAIN _name_ [ AS ] _data_type_ [ COLLATE _collation_ ] [ DEFAULT _expression_ ] [ _constraint_ [ ... ] ] where `_constraint_` is: [ CONSTRAINT _constraint_name_ ] { NOT NULL | NULL | CHECK (_expression_) } ``` ## 描述 `CREATE DOMAIN`創建一個新的數據域。 域在本質上是一個帶有可選約束的數據類型(限制允許的取值范圍)。定義域的用戶成為其所有者。 如果給出一個模式名稱(比如`CREATE DOMAIN myschema.mydomain ...`), 那么該域是在指定的模式中創建的。 否則它會在當前模式中創建。域名字必需在其所在模式中的現有類型和域中唯一。 域可以便于把不同表之間的公共約束提取到一個固定位置進行維護。 比如,在多個表中都含有一個電子郵件地址字段,這個字段都要求有CHECK的約束檢查來驗證郵箱的有效性。 此時可以定義并使用一個域,而不是分別設置每個表的約束。 要創建域,你必須有相關數據類型的`USAGE`權限。 ## 參數 `_name_` 要創建的域名字(可以有模式修飾) 。 `_data_type_` 域的下層數據類型。這時可以包含一組的定義選項。 `_collation_` 可選的域的排序規則。如果沒有指定排序規則,會使用下層所屬數據類型的排序規則。 如果使用了`COLLATE`選項,則下層數據類型必須是可排序的。 `DEFAULT` `_expression_` `DEFAULT`選項為域數據類型的字段聲明一個缺省值。 該值是任何不含變量的表達式(但不允許子查詢)。 缺省表達式的數據類型必需匹配域的數據類型。 如果沒有聲明缺省值,那么缺省值就是 NULL 。 缺省表達式將用于任何省略該字段值的插入操作。 如果為特定的字段聲明了缺省值, 那么它覆蓋任何和該域相關聯的缺省值。 然后,域的缺省覆蓋任何與下層數據類型相關的缺省。 `CONSTRAINT` `_constraint_name_` 一個約束的可選名稱。如果沒有聲明,系統將自動生成一個名字。 `NOT NULL` 域的值通常不能為空。 然而,對于有此約束的域,若分配了匹配的空域類型,則仍然可能會有空值, 例如:通過一個LEFT OUTER JOIN或者`INSERT INTO tab (domcol) VALUES ((SELECT domcol FROM tab WHERE false))`。 `NULL` 這個域的數值允許為 NULL 。這是缺省。 這個子句只是用于和非標準的 SQL 數據庫兼容用。不建議在新的應用中使用它。 `CHECK (``_expression_`) `CHECK`選項聲明域的數值必須滿足的完整性約束或測試。 每個約束必須是一個生成布爾結果的表達式。它應該使用關鍵字`VALUE`來引用被測試的數值。 目前,`CHECK`表達式不能包含子查詢,也不能引用除 VALUE之外的變量。 ## 例子 這個例子創建了`us_postal_code`數據類型并且在一個表定義中 使用了該類型。 使用了一個正則表達式測試以保證這些數值看起來像一個美國的郵政編碼: ``` CREATE DOMAIN us_postal_code AS TEXT CHECK( VALUE ~ '^\d{5}$' OR VALUE ~ '^\d{5}-\d{4}$' ); CREATE TABLE us_snail_addy ( address_id SERIAL PRIMARY KEY, street1 TEXT NOT NULL, street2 TEXT, street3 TEXT, city TEXT NOT NULL, postal us_postal_code NOT NULL ); ``` ## 兼容性 `CREATE DOMAIN`命令符合SQL標準。 ## 參見 [ALTER DOMAIN](#calibre_link-568), [DROP DOMAIN](#calibre_link-566)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看