Evandro (GMAIL) escreveu:
> Osvaldo Rosario Kussama escreveu:
>> 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
> Mesmo assim dá chave duplicada |
> mas valew pela tentativa !
>
No meu teste funcionou:
bdteste=# CREATE TEMP TABLE teste(coluna1 INTEGER PRIMARY
KEY, coluna2 text);
NOTA: CREATE TABLE / PRIMARY KEY criará índice implícito
"teste_pkey" na tabela "teste"
CREATE TABLE
bdteste=# INSERT INTO teste(coluna1,coluna2) VALUES
(1,'um'), (2,'dois'), (3,'três'), (4,'quatro'), (5,'cinco');
INSERT 0 5
bdteste=# SELECT * FROM teste;
coluna1 | coluna2
---------+---------
1 | um
2 | dois
3 | três
4 | quatro
5 | cinco
(5 registros)
bdteste=# 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;
UPDATE 5
bdteste=# SELECT * FROM teste;
coluna1 | coluna2
---------+---------
6 | cinco
5 | quatro
4 | três
3 | dois
2 | um
(5 registros)
Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral