sql >> Databasteknik >  >> RDS >> PostgreSQL

PostgreSQL - Uppdaterade tabellen i en funktion som jag skapade och nu har ordningen på raderna i tabellen ändrats

En tabell har inte en naturlig radordning, vissa databassystem kommer faktiskt att neka din fråga om du inte lägger till en ORDER BY sats i slutet av din SELECT

Varför ändrades beställningen?

Eftersom databasmotorn hämtar dina rader i den fysiska ordning som de kommer från lagringen. Vissa motorer, som SQL Server, kan ha ett CLUSTERED INDEX vilket tvingar fram en fysisk ordning, men det är ändå aldrig riktigt garanterat att du får dina resultat i den exakta ordningen.

Det klustrade indexet existerar mest som en optimering. PostgreSQL har ett liknande CLUSTER funktion för att ändra den fysiska ordningen, men det är en tung process som låser tabellen :http://www.postgresql.org/docs/9.1/static/sql-cluster.html

Hur tvingar man fram en alfabetisk ordning på raderna?

Lägg till en ORDER BY klausul i din fråga.

SELECT * FROM table ORDER BY column



  1. MYSQL close connect kan inte stoppa infogningsaktiviteten

  2. SYSDATETIMEOFFSET() Exempel i SQL Server (T-SQL)

  3. Hur återställer man dynamiskt databaskonfiguration i Laravel?

  4. MySQL INFOGA I ... VÄRDEN och VÄLJ