一切都在问题之中。
我有一个名为 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
包来“重新组织”这样的表格。它为您提供了创建临时表的功能,其中包含您所描述的现有表的修改内容。它还允许您将授权、触发器、索引等复制到新表,然后切换表,以便临时表成为活动表。有关工作演示,请参阅本文。