kar*_*lia 5 oracle partitioning
我有一个主父表和多个子表,其中有正常分区,其中分区列在所有子表中重复。我想切换到参考分区(oracle 11g)。我的子表目前每个有 2 个分区,我需要删除这两个分区并替换为参考分区。
目前,我面临着删除最后一个分区并使用 ALTER 命令添加新参考分区的问题。
有没有办法做到这一点,因为我无法删除表并丢失数据在分区列上创建了索引。
我正在使用的查询:
ALTER TABLE CHILD_TABLE_1
DROP PARTITIONS part1, part2
UPDATE INDEXES; --- here only one partition was dropped
ALTER TABLE CHILD_TABLE_1 ADD PARTITION BY REFERENCE (foreign_key_with_parent);
Run Code Online (Sandbox Code Playgroud)
这给出了错误
错误:ORA-00902:无效的数据类型 SQLState:42000 错误代码:902
我曾在另一个论坛中询问过从范围分区转换为引用的问题。
https://community.oracle.com/message/14807741
答案是:DBMS_REDEFINITION
这将是您的最佳选择,因为您有额外的空间和至少一些需要迁移到新表的约束(fk)。
DBMS_REDEFINITION
为您完成所有繁重的工作(移动约束)。
归档时间: |
|
查看次数: |
410 次 |
最近记录: |