Editado:
Preciso remover restrições de chave estrangeira de algumas tabelas do PostgreSQL. No entanto, essas tabelas são muito usadas e contêm um volume significativo de dados . Algumas são particionadas , enquanto outras não .
Quando tento alterar a tabela para remover a chave estrangeira, isso causa um bloqueio , que interrompe as operações em andamento ou é bloqueado devido a alguma operação de gravação, a menos que programemos um tempo de inatividade.
Existe uma maneira de remover restrições de chave estrangeira de uma tabela no PostgreSQL sem causar bloqueios ou impactar operações em andamento?
Quaisquer sugestões ou melhores práticas serão apreciadas.
PS: Acredito que sem bloqueios isso poderia causar problemas com consistência de dados, integridade e controle de simultaneidade.
Não, não há como remover uma chave estrangeira sem colocar um bloqueio na tabela. No entanto, esse bloqueio será mantido apenas por um tempo muito curto, então isso não deve ser um problema, a menos que você sempre tenha transações de longa duração que envolvam a tabela.