2017-03-07 49 views
0

你好,我试图分区表...但这张表有fk引用我的表。postgresql - pg_pathman - 外键

SELECT create_hash_partitions('crm.carga', 'id_carga', 100); 

[Content] 
ERRO: foreign key "fk_carga_cliente_id_carga" references relation "carga" 
CONTEXT: função PL/pgSQL common_relation_checks(regclass,text) linha 31 em RAISE 
comando SQL "SELECT public.common_relation_checks(parent_relid, attribute)" 
função PL/pgSQL create_hash_partitions(regclass,text,integer,boolean,text[],text[]) linha 14 em PERFORM 

是否可以对具有外键的表进行分区?

回答

1

你不能在 'crm.carga' 执行create_hash_partitions,因为其他表引用它,看在code

FOR v_rec IN (SELECT * 
        FROM pg_constraint WHERE confrelid = p_relation::regclass::oid) 
    LOOP 
     is_referenced := TRUE; 
     RAISE WARNING 'foreign key ''%'' references relation ''%''', 
       v_rec.conname, p_relation; 
    END LOOP; 

所以答案是:是的,可以。但不能与pg_pathman的功能create_hash_partitions