update sequencial

PostgreSQL

04/04/2011

ola pessoal
tenho uma tabela com uns 100 registros, com pk codigo
criei um campo chamado "sequencia"
e preciso fazer um update em todos os registros no campo sequencia desta tabela conforme alguns valores ( order by data )
como resolver ?
obrigado
Marcos Corso

Marcos Corso

Curtidas 0

Respostas

Jair N.

Jair N.

04/04/2011

Boa Tarde independente da quantidade de registros você pode criar uma seqüência temporária e fazer o update na tabela de atual a exemplo:


CREATE TEMPORARY SEQUENCE seq_recnum
  INCREMENT 1
  MINVALUE 1  
  NO MAXVALUE
  START 1
  CACHE 1;

ALTER SEQUENCE seq_recnum START 1;

UPDATE tabela
   SET sequencia = sq_tabela1.sequencia
  FROM (SELECT nextval('seq_recnum') AS sequencia
             ,  sq_tabela2.*
         FROM (SELECT *
                 FROM tabela
             ORDER BY data
              ) sq_tabela2
       ) sq_tabela1
 WHERE (sq_tabela1.codigo = tabela.codigo)

GOSTEI 0
POSTAR