Oracle-10g
使用 DBMS_REDEFINITON 重新定義表時重新創建索引和約束
我有一個具有以下特徵的表 A:
- 多個索引
- 約束(空、唯一、檢查、外鍵)
- 2 個觸發器(更新前)
- 首要的關鍵
如果我要使用 dbms_redefintion 重新定義表以更改儲存,我是否必須重新創建指向臨時表的觸發器、約束和触發器,或者這是否會自動進行,只需在重新定義後重命名它們?
如果您只是重新定義儲存,則無需重新定義表即可。您可以更改表定義。重新排列列順序需要重新定義。大多數其他更改可以通過更改表來完成。
如果您確實重新定義了表,則需要在新表上定義所需的約束和索引。這些將需要新名稱。某些對象可以稍後重命名。
如果你想用新的儲存重建表,你可以通過線上移動來做到這一點。如果新的儲存定義不包含新的表空間,則需要將其移動兩次,一次移至另一個表空間,然後移回原始表空間。
您應該使用唯一的名稱重新創建它們。