我有一个表 USERS,其中包含 USER_ID 和 NAME 列,它在 USER_ID 列上进行了分区。
比如说,我想创建另一个表 USER_PHN,其中包含 USER_ID 和 PHN_NO 列。此表在 USER_ID 上的分区应与 USERS 表中的分区相同。是否可以将分区定义从原始表复制到新表中?
我有一个表 USERS,其中包含 USER_ID 和 NAME 列,它在 USER_ID 列上进行了分区。
比如说,我想创建另一个表 USER_PHN,其中包含 USER_ID 和 PHN_NO 列。此表在 USER_ID 上的分区应与 USERS 表中的分区相同。是否可以将分区定义从原始表复制到新表中?
如果 users 和 user_phn 具有引用约束,则可以使用引用分区,如果您碰巧使用的是 Oracle 11g。有关文档,请参阅Oracle® Database VLDB 和分区指南 11g 第 1 版 (11.1)。
这里的优点之一是冗余数据较少,因为分区键不需要子行中的副本。这已经在 FK 关系中定义了。
子表从父表继承分区定义。
考虑在一个过程中编写 USERS 表的脚本,在 DDL 中找到分区部分并将表名替换为 USER_PHN,然后执行它。