On 24-09-2012 12:16, Antonio Cesar wrote:
> Tipo esses onde precisei remover uma CONSTRAINT e recria-la.
> 
Mas isso tá levando quanto tempo? Cadê a janela de manutenção (ou pelo menos
um período onde há baixo uso do sistema)?

> START TRANSACTION;
> ALTER TABLE nfe_emitida DROP CONSTRAINT uk_nfe_emitida_chaces;
> ALTER TABLE nfe_emitida ADD CONSTRAINT uk_nfe_emitida_chaces UNIQUE
> (chave_acesso);
> COMMIT;
> 
Você não disse a versão que está utilizando mas a partir do 9.1 você pode
diminuir o tempo desse tipo de transação utilizando um índice preexistente e
utilizá-lo como restrição UNIQUE.

CREATE UNIQUE INDEX CONCURRENTLY fooi ON nfe_emitida(chave_acesso);

BEGIN;
ALTER TABLE nfe_emitida ADD CONSTRAINT uk_nfe_emitida UNIQUE USING INDEX fooi;
ALTER TABLE nfe_emitida DROP CONSTRAINT uk_nfe_emitida_chaces;
COMMIT;


-- 
   Euler Taveira de Oliveira - Timbira       http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a