Sim, o order by me garante a ordem exata que preciso (pelo menos 
pressupõe-se, rsrsrs)

Quando damos um SELECT * FROM TABELA (sem order by) pressupõem-se que os 
registros viram numa ordem natural em que foram inseridos,
um resultado foram disso seria um tanto quanto estranho.

Por exemplo, se dou um INSERT ele coloca o registro imediatamente antes do 
registro posicionado,
se dou um append, ele vai até o ultimo registro e coloco após este.

Quanto a saber a ordem em que estão dos registro sem um order by,
a minha dúvida é simplesmente pra saber porque o postgres não mantem a ordem 
"natural"

Em uma tabela DBF por exemplo, quando a abrimos ele mostra a ordem natural 
em que foram inseridos os registros
se damos um update ele simplesmente atualiza a linha em questão e mantem a 
posição natural
Pelo que vi, em bases como o Firebird, MySQL ele mantém essa ordem natural, 
pelo menos visivelmente, internamente não estudei o caso.
Já o postgres como dito cancela o registro atual e insere um novo, 
interessante isso,
mas ao mesmo tempo fico me perguntando se isso levaria a um inchaço 
desnecessário (olha quem está falando, rsrsrs) na base.
E não tornaria o update mais lento ?

Será que esse procedimento adotado seria pra um caso de um desastre na base 
para a recuperação de dados antigos ?


Marcelo Silva
-------------------------------------------------------------
Desenvolvedor: Delphi, PHP, ASP

Cel: (11) 95052-1407 Tim
Cel: (11) 99693-4251 Vivo
msn: [email protected]

Empresa: Perfil Medicina e Segurança do Trabalho

-----Mensagem Original----- 
From: Osvaldo Kussama
Sent: Friday, November 23, 2012 10:35 AM
To: Comunidade PostgreSQL Brasileira
Subject: Re: [pgbr-geral]Postgres muda a posição do registro no update?

Em 23/11/12, Marcelo Silva<[email protected]> escreveu:
> Pessoal, o postgres muda a posição do registro quando é executado um 
> update,
> é isso mesmo ?
>
> Por exemplo, tenho as linhas:
>
> Nome  Qtd
> Joao       3
> Maria     2
> Jose       1
>
> Se eu mudo a quantidade, fica
>
> Nome   Qtd
> Maria      2
> Joao        4
> Jose        2
>
> Sem o uso de “order by” percebe-se que ele muda a posição
>


Em um comando SELECT o PostgreSQL só garante uma ordem dos registros
retornados se for especificada a cláusula ORDER BY.

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral 

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a