我想建立一个分区表,分区的规则是根据一个表的主键值是和另外一个表的某个主键值相同,如果相同分在第一个分区里,不同的分在第二个分区里,sql语句如下:
create table space_prim (name number );--主表
create table space_child(name number);--子表
即如果space_child.name=space_prim.name则存在第一个分区里,不同的分在第二个分区.

解决方案 »

  1.   

    这个要求有点奇怪。如果space_prim表中的主键增加了怎么办?把数据挪个分区么?
      

  2.   

    其实很简单的。别想的那么复杂。
    在需要分区的表中增加一个分区键字段,该字段用于存储你所需要的一些离散值。
    假设:
    如果space_child.name=space_prim.name则存在时分区键值为1,
    不同时分区键值为2
    则可以写一个函数或其他方式得到分区表中分区键字段的值,
    接下来就是用什么方式来分区该表了,list、range、hash都可以了