Fórum Problema no update..... #26733
18/06/2007
0
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
Curtir tópico
+ 0
Responder
Posts
24/08/2007
Marcelo.mileris
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
Responder
Gostei + 0
29/12/2007
Mleal
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
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)