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

Le tuple non vengono inserite in sequenza nella tabella del database?

Questo è un malinteso. Non esiste un ordine "naturale" in una tabella di database relazionale. Mentre le righe vengono normalmente inserite in sequenza nel file fisico che contiene una tabella, un'ampia gamma di attività può rimescolare l'ordine fisico. E le query che fanno qualcosa di più di una scansione sequenziale di base (non parallela) possono restituire le righe in qualsiasi ordine opportuno. Questo è secondo lo standard SQL.

L'ordine che vedi è arbitrario a meno che tu non aggiunga ORDER BY alla domanda.

pgAdmin3 per impostazione predefinita ordina le righe in base alla chiave primaria (se non diversamente specificato). La tua colonna è di tipo varchar e le righe sono ordinate in ordine alfabetico (in base alla locale corrente). Tutto in base alla progettazione, tutto come dovrebbe essere.

Per ordinare le righe come sembri aspettarti, puoi inserire uno '0' nel tuo testo:

...
typename_0009
typename_0010
...

La soluzione adeguata sarebbe avere una colonna numerica con solo il numero, però.

Potresti essere interessato all'ordinamento naturale. Potresti anche essere interessato a un serial colonna.