PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

As tuplas não são inseridas sequencialmente na tabela do banco de dados?


Este é um mal-entendido. Não há ordem "natural" em uma tabela de banco de dados relacional. Embora as linhas sejam normalmente inseridas em sequência no arquivo físico que contém uma tabela, uma ampla gama de atividades pode reorganizar a ordem física. E consultas que fazem qualquer coisa além de uma varredura sequencial básica (não paralelizada) podem retornar linhas em qualquer ordem oportuna. Isso está de acordo com o SQL padrão.

A ordem que você vê é arbitrária, a menos que você adicione ORDER BY para a consulta.

pgAdmin3 por padrão ordena as linhas pela chave primária (a menos que especificado de outra forma). Sua coluna é do tipo varchar e as linhas são ordenadas alfabeticamente (de acordo com sua localidade atual). Tudo por design, tudo como deveria ser.

Para classificar as linhas como você espera, você pode preencher algum '0' em seu texto:
...
typename_0009
typename_0010
...

A solução adequada seria ter uma coluna numérica com apenas o número, no entanto.

Você pode estar interessado no tipo natural. Você também pode estar interessado em um serial coluna.