<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國際加速解決方案。 廣告
                # ALTER DOMAIN ## Name ALTER DOMAIN?--?修改一個域的定義 ## Synopsis ``` ALTER DOMAIN _name_ { SET DEFAULT _expression_ | DROP DEFAULT } ALTER DOMAIN _name_ { SET | DROP } NOT NULL ALTER DOMAIN _name_ ADD _domain_constraint_ [ NOT VALID ] ALTER DOMAIN _name_ DROP CONSTRAINT [ IF EXISTS ] _constraint_name_ [ RESTRICT | CASCADE ] ALTER DOMAIN _name_ RENAME CONSTRAINT _constraint_name_ TO _new_constraint_name_ ALTER DOMAIN _name_ VALIDATE CONSTRAINT _constraint_name_ ALTER DOMAIN _name_ OWNER TO _new_owner_ ALTER DOMAIN _name_ RENAME TO _new_name_ ALTER DOMAIN _name_ SET SCHEMA _new_schema_ ``` ## 描述 `ALTER DOMAIN` 修改一個域的定義。它有幾種子形式: SET/DROP DEFAULT 這些形式設置或者刪除一個域的缺省值。請注意缺省值只適用于隨后的 `INSERT` 命令;他們并不影響使用該域已經在表中的行。 SET/DROP NOT NULL 這些形式改變一個域是否標記為允許 NULL 值或者是不允許 NULL 值。 在使用域的字段包含非空的值的時候,你只可以使用 `SET NOT NULL`。 ADD `_domain_constraint_` [ NOT VALID ] 這種形式向域中增加一種新的約束,使用的語法和 [CREATE DOMAIN](#calibre_link-567) 一樣。 當一個新的約束增加至域中時,使用這個域的所有列將會按新增的約束條件進行檢查。 這些檢查也可以通過使用`NOT VALID`選項來增加新的約束條件進行關閉; 約束也可以以后通過`ALTER DOMAIN ... VALIDATE CONSTRAINT`語句生效。 新插入或是更新的記錄將會按所有約束進行檢查,甚至是標記為`NOT VALID`的約束。 `NOT VALID`只是對`CHECK`約束生效。 DROP CONSTRAINT [ IF EXISTS ] 這種形式刪除一個域上的約束。如果使用了`IF EXISTS` 選項并且約束并不存在時,系統不會拋出錯誤提示, 這種情況下系統只會發出一個提示信息。 RENAME CONSTRAINT 這種形式更改一個域上的約束名稱。 VALIDATE CONSTRAINT 這種形式將域上以前以`NOT VALID`選項增加的約束進行生效,這樣會對域中所有列的數據按這個指定的約束進行驗證。 OWNER 這種形式將域的所有者改變為一個指定的用戶。 `RENAME` 這種形式將改變域的名稱。 SET SCHEMA 這種形式將改變域的模式。所有與這個域有關的約束也會移至新的模式。 要使用`ALTER DOMAIN`語句,您必須是該域的所有者。 要修改一個域的模式, 您還必須在新模式上擁有`CREATE`權限。 要修改所有者, 您還必須是新的所有角色的直接或間接成員,并且該成員必須在此域的模式上有`CREATE`權限。 (這些限制強制了修改該所有者不會做任何通過刪除和重建域不能做的事情。不過,超級用戶可以以任何方式修改任意域的所有關系。) ## 參數 `_name_` 一個要修改的現有域的名字(可以有模式修飾)。 `_domain_constraint_` 域的新域約束。 `_constraint_name_` 要刪除或是重命名的原有約束名。 `_NOT VALID_` 不對已有數據進行約束的有效性驗證。 `CASCADE` 自動級聯刪除依賴這個約束的對象。 `RESTRICT` 如果有任何依賴對象,則拒絕刪除約束。這是缺省行為。 `_new_name_` 域的新名稱。 `_new_constraint_name_` 約束的新名稱。 `_new_owner_` 域的新的所有者的用戶名。 `_new_schema_` 域的新的模式名。 ## 注意 目前,如果命名的域或者任何派生的域用于數據庫中任何一個表的一個復合列中, 那么 `ALTER DOMAIN ADD CONSTRAINT`和`ALTER DOMAIN SET NOT NULL` 將失敗。 最終,他們應該加以改進以達到能夠驗證這種嵌套列的新約束。 ## 例子 給一個域增加一個`NOT NULL` 約束: ``` ALTER DOMAIN zipcode SET NOT NULL; ``` 從一個域里刪除一個`NOT NULL`約束: ``` ALTER DOMAIN zipcode DROP NOT NULL; ``` 向一個域里增加一個檢查約束: ``` ALTER DOMAIN zipcode ADD CONSTRAINT zipchk CHECK (char_length(VALUE) = 5); ``` 從一個域里刪除一個檢查約束: ``` ALTER DOMAIN zipcode DROP CONSTRAINT zipchk; ``` 從一個域里的檢查約束重命名: ``` ALTER DOMAIN zipcode RENAME CONSTRAINT zipchk TO zip_check; ``` 把域移動到另外一個模式: ``` ALTER DOMAIN zipcode SET SCHEMA customers; ``` ## 兼容性 除了`OWNER`、`RENAME`、`SET SCHEMA`和`VALIDATE CONSTRAINT`這些選項是PostgreSQL擴展外, `ALTER DOMAIN`語句基本與SQL標準兼容。 `ADD CONSTRAINT`相關的`NOT VALID`選項也是PostgreSQL的擴展。 ## 參見 [CREATE DOMAIN](#calibre_link-567), [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>

                              哎呀哎呀视频在线观看