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

PostgreSQL - Aggiornamento della tabella effettuato in una funzione che ho creato e ora l'ordine delle righe nella tabella è cambiato

Una tabella non ha un ordine di riga naturale, alcuni sistemi di database rifiuteranno effettivamente la tua query se non aggiungi un ORDER BY clausola alla fine del tuo SELECT

Perché l'ordine è cambiato?

Poiché il motore di database recupera le righe nell'ordine fisico in cui provengono dall'archivio. Alcuni motori, come SQL Server, possono avere un CLUSTERED INDEX che forza un ordine fisico, ma non è mai veramente garantito che tu ottenga i risultati in quell'ordine preciso.

L'indice cluster esiste principalmente come ottimizzazione. PostgreSQL ha un CLUSTER simile funzione per modificare l'ordine fisico, ma è un processo pesante che blocca la tabella:http://www.postgresql.org/docs/9.1/static/sql-cluster.html

Come forzare un ordine alfabetico delle righe?

Aggiungi un ORDER BY clausola nella tua query.

SELECT * FROM table ORDER BY column