PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

PostgreSQL - Dokonano aktualizacji tabeli w utworzonej przeze mnie funkcji, a teraz zmieniła się kolejność wierszy w tabeli

Tabela nie ma naturalnej kolejności wierszy, niektóre systemy baz danych odrzucą zapytanie, jeśli nie dodasz ORDER BY klauzula na końcu SELECT

Dlaczego kolejność się zmieniła?

Ponieważ aparat bazy danych pobiera wiersze w kolejności fizycznej, w której pochodzą z magazynu. Niektóre silniki, takie jak SQL Server, mogą mieć CLUSTERED INDEX co wymusza fizyczną kolejność, ale nadal nigdy nie ma gwarancji, że otrzymasz wyniki w tej dokładnej kolejności.

Indeks klastrowy istnieje głównie jako optymalizacja. PostgreSQL ma podobny CLUSTER funkcja zmiany kolejności fizycznej, ale jest to ciężki proces, który blokuje tabelę:http://www.postgresql.org/docs/9.1/static/sql-cluster.html

Jak wymusić alfabetyczną kolejność wierszy?

Dodaj ORDER BY klauzula w zapytaniu.

SELECT * FROM table ORDER BY column



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyzwalacze Rails, PostgreSQL i historii

  2. Wstaw zeskrobane dane tabeli bezpośrednio do bazy danych PostgreSQL

  3. Wykrywaj i obsługuj, gdy zapytanie do bazy danych nie powiedzie się

  4. Pliki ewolucji Playframework kompatybilne zarówno z postgresem, jak i h2

  5. Kompilowanie zapisywalnego rozszerzenia mongo_fdw w formacie binarnym instalacji PostgreSQL.