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

PostgreSQL - Lavede opdatering til tabel i en funktion jeg oprettede og nu er rækkefølgen af ​​rækker i tabellen ændret

En tabel har ikke en naturlig rækkefølge, nogle databasesystemer vil faktisk afvise din forespørgsel, hvis du ikke tilføjer en ORDER BY klausul i slutningen af ​​din SELECT

Hvorfor blev rækkefølgen ændret?

Fordi databasemotoren henter dine rækker i den fysiske rækkefølge, de kommer fra lageret. Nogle motorer, som SQL Server, kan have et CLUSTERED INDEX hvilket fremtvinger en fysisk ordre, men det er stadig aldrig rigtig garanteret, at du får dine resultater i den præcise rækkefølge.

Det klyngede indeks eksisterer mest som en optimering. PostgreSQL har en lignende CLUSTER funktion til at ændre den fysiske rækkefølge, men det er en tung proces, der låser tabellen :http://www.postgresql.org/docs/9.1/static/sql-cluster.html

Hvordan fremtvinger man en alfabetisk rækkefølge af rækkerne?

Tilføj en ORDER BY klausul i din forespørgsel.

SELECT * FROM table ORDER BY column



  1. Masser af SHOW TRANSACTION ISOLATION LEVEL-forespørgsler i postgres

  2. SQL Server:Sådan finder du alle localdb-instansnavne

  3. Mysql join giver duplikerede rækker

  4. Fjernelse af duplikerede rækker fra en tabel