Oracle

應用於舊表的現有約束和索引是否會在刪除後應用於像舊表一樣重命名的新表?

  • January 29, 2013

一切都在問題之中。

我有一個名為 tableA 的表,上面有索引、外鍵和約束。

我必須修改名為 column1 的列中的內容。這是一個生產系統,我想

1) create a copy of tableA called tableA_temp
2) Perform the data change (some concatenation and regexp_replace)
3) Obtain validation that the change is correct
4) rename tableA to tableA_old
4) Rename tableA_temp to tableA.

一旦重命名為 tableA,約束和索引是否會應用於新的 tableA?

我的猜測是肯定的,但我需要一點驗證。

您可以使用該DBMS_REDEFINITION包來“重新組織”這樣的表格。它為您提供了創建臨時表的功能,其中包含您所描述的現有表的修改內容。它還允許您將授權、觸發器、索引等複製到新表,然後切換錶,以便臨時表成為活動表。

有關工作展示,請參閱本文。

不。

好的,這取決於您是否在副本上創建它們。

引用自:https://dba.stackexchange.com/questions/24120