Problema no update.....

PostgreSQL

18/06/2007

olá galera acabei de entrar no forum e ja estou postando problemas.... :oops: :oops: :oops:

seguinte tenho esta tabela

CREATE TABLE tabela
(
  campo1 integer NOT NULL DEFAULT nextval(´sequc´::regclass),
  campo2 character varying(10),
  campo3  character varying(35),
  CONSTRAINT campo1_pk  PRIMARY KEY (campo1 cod)
) 
WITHOUT OIDS;
ALTER TABLE uc OWNER TO postgres;


e uso a seguinte consulta para ler em blocos o banco

select * from uc limit 50 offset 50


os registros sao retornados na ordem correta!!!

ae eu executo um update em um registro que foi retornado na consulta (update tabela set campo2=´nada´ where campo1 = 55 ) e volto a realizar a consulta para ler um novo bloco.....

e os registros naum voltam mais ordenados!!!!!!!!!!!!!!

o que acontece de errado?!?!?!?!?!?! :!: :?: :!: :?:


Andrericarte

Andrericarte

Curtidas 0

Respostas

Marcelo.mileris

Marcelo.mileris

18/06/2007

utilize um [b:cebd735c50]order by[/b:cebd735c50]. Acontece isso mesmo ao vc fazer um update... ele traz o registro atualizado por ultimo ou em primeiro... agora não me recordo

select * from uc order by campo1 limit 50 offset 50 



GOSTEI 0
Mleal

Mleal

18/06/2007

André,

O Marcelo tem razão. A única maneira de forçar um ordenamento dos registros é utilizar a cláusula ORDER BY. Em uma consulta simples, mesmo após inserir dados sequencialmente, não há garantia de que os registros virão na ordem natural de inserção. Após UPDATEs e DELETEs, a coisa fica pior. Se vc deseja alguma ordenação, sempre utilize a cláusula ORDER BY.

Mais, se sua base é muito grande, procure criar indices e utilizar o(s) campo(s) que contêm indice no primeiro argumento do WHERE. O PostgreSQL irá utilizar os indices e acelerar muito a consulta.

abçs

MLeal :P


GOSTEI 0
POSTAR