sql >> Databasteknik >  >> RDS >> PostgreSQL

Tuplar infogas inte sekventiellt i databastabellen?

Detta är ett missförstånd. Det finns ingen "naturlig" ordning i en relationsdatabastabell. Medan rader normalt infogas i sekvens till den fysiska filen som innehåller ett bord, kan ett brett utbud av aktiviteter ändra fysisk ordning. Och frågor som gör något mer än en grundläggande (icke-parallelliserad) sekventiell genomsökning kan returnera rader i vilken lämplig ordning som helst. Det är enligt standard SQL.

Ordningen du ser är godtycklig om du inte lägger till ORDER BY till frågan.

pgAdmin3 ordnar som standard rader efter primärnyckeln (om inget annat anges). Din kolumn är av typen varchar och rader är ordnade i alfabetisk ordning (enligt din nuvarande plats). Allt genom design, allt som det ska vara.

För att sortera rader som du verkar förvänta dig kan du fylla på en "0" i din text:

...
typename_0009
typename_0010
...

Den rätta lösningen skulle dock vara att ha en numerisk kolumn med bara numret.

Du kanske är intresserad av naturlig-sort. Du kanske också är intresserad av en serial kolumn.



  1. Välj utan en FROM-sats i Oracle

  2. Hur man får nya användare per dag i MySQL

  3. Använda IN-satsen med en kommaavgränsad sträng från utdata från en replace() funktion i Oracle SQL

  4. Hur man kör PHP 5-applikationer med MySQL 8.0 på CentOS 7