<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # ALTER TYPE ## Name ALTER TYPE?--? 修改一個類型的定義。 ## Synopsis ``` ALTER TYPE _name_ _action_ [, ... ] ALTER TYPE _name_ OWNER TO _new_owner_ ALTER TYPE _name_ RENAME ATTRIBUTE _attribute_name_ TO _new_attribute_name_ [ CASCADE | RESTRICT ] ALTER TYPE _name_ RENAME TO _new_name_ ALTER TYPE _name_ SET SCHEMA _new_schema_ ALTER TYPE _name_ ADD VALUE [ IF NOT EXISTS ] _new_enum_value_ [ { BEFORE | AFTER } _existing_enum_value_ ] `_action_`可以是下列選項之一: ADD ATTRIBUTE _attribute_name_ _data_type_ [ COLLATE _collation_ ] [ CASCADE | RESTRICT ] DROP ATTRIBUTE [ IF EXISTS ] _attribute_name_ [ CASCADE | RESTRICT ] ALTER ATTRIBUTE _attribute_name_ [ SET DATA ] TYPE _data_type_ [ COLLATE _collation_ ] [ CASCADE | RESTRICT ] ``` ## 描述 `ALTER TYPE`改變一個現有類型的定義。 有以下幾種形式: `ADD ATTRIBUTE` 這種形式給復合類型增加新的屬性,與[CREATE TYPE](#calibre_link-100)命令語法相同。 `DROP ATTRIBUTE [ IF EXISTS ]` 這種形式從復合類型刪除一個屬性。如果指定了`IF EXISTS`選項,并且屬性不存在時,不會有錯誤產生。在這種情況下系統僅會有一個提示信息。 `SET DATA TYPE` 這種形式改變一種復合類型中某個屬性的類型。 `OWNER` 這種形式改變類型的所有者。 `RENAME` 這種形式改變類型的名稱或是一個復合類型中的一個屬性的名稱。 `SET SCHEMA` 這種形式將類型移至一個新的模式中。 `ADD VALUE [ IF NOT EXISTS ] [ BEFORE | AFTER ]` 這種形式給枚舉類型增加一個新值。新值在枚舉類型中的位置可通過對一個已有數值使用`BEFORE`或`AFTER`選項來指定。否則,新值會加在值列表的最后面。 如果使用了`IF NOT EXISTS`選項,即使枚舉中已含有新值也不會報錯,僅有提示信息。相反,新增一個枚舉中已有的新值會產生錯誤提示。 `CASCADE` 自動級聯更新需更新類型以及相關聯的記錄和繼承它們的子表。 `RESTRICT` 如果需聯動更新類型是已更新類型的關聯記錄,則拒絕更新。這是缺省選項。 `ADD ATTRIBUTE`、`DROP ATTRIBUTE`和`ALTER ATTRIBUTE`選項可以組合成一個列表同時處理。 例如,在一條命令中同時增加幾個屬性或是更改幾個屬性的類型是可以實現的。 要使用`ALTER TYPE`,你必須是該類型的所有者。 要修改一個類型的模式,你還必須在新模式上擁有`CREATE`權限。 要修改所有者,你還必須是新的所有角色的直接或間接成員, 并且該成員必須在此類型的模式上有`CREATE`權限。 (這些限制強制了修改該所有者不會做任何通過刪除和重建類型不能做的事情。 不過,超級用戶可以以任何方式修改任意類型的所有權。 ) 要增加一個屬性或是修改一個屬性的類型,你也必須有該類型的`USAGE`權限。 ## 參數 `_name_` 一個需要修改的現有的類型的名字(可以有模式修飾) 。 `_new_name_` 該類型的新名稱。 `_new_owner_` 新所有者的用戶名 。 `_new_schema_` 該類型的新模式 。 `_attribute_name_` 擬增加、更改或刪除的屬性的名稱。 `_new_attribute_name_` 擬改名的屬性的新名稱。 `_data_type_` 擬新增屬性的數據類型,或是擬更改的屬性的新類型名。 `_new_enum_value_` 擬加入枚舉類型值列表中的新值。和所有枚舉參數一樣,它必須使用引號引起來。 `_existing_enum_value_` 用于設定將要新增的枚舉值在枚舉中前后位置的已存在的枚舉參考值。和所有枚舉參數一樣,它必須使用引號引起來。 ## 注意 `ALTER TYPE ... ADD VALUE`(這種形式給枚舉增加一個新值)命令是不能在一個事務處理塊內部執行的。 與處理枚舉原有的列表值相比,新增一個枚舉值有時有點慢,這一般出現在新增的枚舉值使用了 `BEFORE` 或 `AFTER`選項來 指定新值的位置,而不是使用缺省的選項放在列表最后。不過有時使用缺省放在最后也會慢(這在該枚舉創建后其OID計數出現了"復位"情況)。 當然,這種性能上的損失是很小的。如果用戶介意的話,可以通過刪除這個枚舉然后重新創建,或是導出數據庫再導入即可恢復正常性能。 ## 例子 重命名數據類型: ``` ALTER TYPE electronic_mail RENAME TO email; ``` 要改變一個用戶定義類型 `email`的所有者為`joe`: ``` ALTER TYPE email OWNER TO joe; ``` 把用戶定義類型`email`的模式改變為`customers`: ``` ALTER TYPE email SET SCHEMA customers; ``` 給一個數據類型增加一個新的屬性: ``` ALTER TYPE compfoo ADD ATTRIBUTE f3 int; ``` 給一個枚舉類型增加一個指定位置的新值: ``` ALTER TYPE colors ADD VALUE 'orange' AFTER 'red'; ``` ## 兼容性 增加或刪除屬性是SQL標準,其他選項都是PostgreSQL的擴展。 ## 參見 [CREATE TYPE](#calibre_link-100), [DROP TYPE](#calibre_link-647)
                  <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>

                              哎呀哎呀视频在线观看