hanging ADICIONAR CHAVE ESTRANGEIRA: existe uma solução alternativa?

0

Agora estou meio DBA PostgreSQL / dev ...
e enfrentou o problema que parece bem conhecido:

alter table assessment -- quite simple new table: (event int, value bool)
  add constraint assessment_event_fk
    foreign key (event)
    references rtls(id) -- it refs the primary key integer field

Adicionar not valid (na esperança inútil de validate depois) também não ajuda.

Sim, eu sei, ele trava (a tabela rtls é de cerca de 2 milhões de registros agora).
E é preciso pg_dump da base, editar o SQL e carregá-lo de volta.
Eu vi isso "aconselhar" em posts desde cerca de 2003 ...

É 9.2.18 da implantação padrão no CentOS 7, se isso for importante ( faz! ).

Eu não posso acreditar que ficou preso por mais de uma década ...
O que devo considerar para trabalhar em torno dele?

Use sorta check para exists (select id from rtls where id=?) ???
De jeito nenhum:

vad=> alter table assessment add constraint assessment_event_fk check(exists (select rtls.id from rtls where rtls.id=event));
ERROR:  cannot use subquery in check constraint
    
por jno 13.07.2017 / 14:51

1 resposta

0

Basta atualizar para a 9.6.

Meu script para atualizar aqui: link (sim, eu tive que atualizar vários nós - dev / test farm)

    
por 14.07.2017 / 17:10