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 pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral