sql >> Database teknologi >  >> RDS >> PostgreSQL

Tuples er ikke indsat sekventielt i databasetabellen?

Dette er en misforståelse. Der er ingen "naturlig" rækkefølge i en relationel databasetabel. Mens rækker normalt indsættes i rækkefølge til den fysiske fil, der holder et bord, kan en lang række aktiviteter ændre den fysiske rækkefølge. Og forespørgsler, der gør noget mere end en grundlæggende (ikke-paralleliseret) sekventiel scanning, kan returnere rækker i enhver passende rækkefølge. Det er i henhold til standard SQL.

Den rækkefølge, du ser, er vilkårlig, medmindre du tilføjer ORDER BY til forespørgslen.

pgAdmin3 bestiller som standard rækker efter den primære nøgle (medmindre andet er angivet). Din kolonne er af typen varchar og rækker er ordnet alfabetisk (i henhold til din nuværende lokalitet). Alt efter design, alt som det skal være.

For at sortere rækker, som du ser ud til at forvente, kan du indsætte nogle '0' i din tekst:

...
typename_0009
typename_0010
...

Den rigtige løsning ville dog være at have en numerisk kolonne med kun tallet.

Du kan være interesseret i naturlig-sort. Du kan også være interesseret i en serial kolonne.



  1. arbejde med json i oracle

  2. Tilslutning af en Bastion Server til en PostgreSQL Server via SSH Tunnel

  3. Kumulativ sum over et sæt rækker i mysql

  4. android SQLite-database med database på specifik placering muligt?