Evandro (GMAIL) escreveu:
> Boa tarde pessoal,
> preciso fazer um update em uma chave primária, mas isso esta causando
> uma duplicação de chave
> se fosse em MySQL ou ORACLE poderia resolver usando um UPDATE com ORDER BY
> mas notei que o PostreSQL não tem este recurso
> existe algum forma de contornar este problema ?
>
> segue um exemplo simples para simular o erro
>
> CREATE TABLE teste
> (
> coluna1 integer NOT NULL,
> CONSTRAINT chaveprimaria PRIMARY KEY (coluna1)
> )
> WITHOUT OIDS;
>
>
> INSERT INTO teste(coluna1) VALUES (1);
> INSERT INTO teste(coluna1) VALUES (2);
>
> update teste set coluna1 = (coluna1 + 1)
>
>
> ERRO: duplicar chave viola a restrição de unicidade "chaveprimaria"
> SQL state: 23505
>
>
Tente:
UPDATE teste SET coluna1 = t_aux.coluna1+1
FROM (
SELECT coluna1
FROM teste
ORDER BY coluna1 DESC
) t_aux
WHERE teste.coluna1 = t_aux.coluna1;
Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral