Problema no update.....
olá galera acabei de entrar no forum e ja estou postando problemas.... :oops: :oops: :oops:
seguinte tenho esta tabela
e uso a seguinte consulta para ler em blocos o banco
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?!?!?!?!?!?! :!: :?: :!: :?:
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
Curtidas 0
Respostas
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
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
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