sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL - Update gemaakt voor tabel in een functie die ik heb gemaakt en nu is de volgorde van rijen in de tabel veranderd

Een tabel heeft geen natuurlijke rijvolgorde, sommige databasesystemen weigeren uw zoekopdracht zelfs als u geen ORDER BY toevoegt clausule aan het einde van uw SELECT

Waarom is de bestelling gewijzigd?

Omdat de database-engine uw rijen ophaalt in de fysieke volgorde waarin ze uit de opslag komen. Sommige engines, zoals SQL Server, kunnen een CLUSTERED INDEX . hebben wat een fysieke volgorde afdwingt, maar het is nog steeds nooit echt gegarandeerd dat je je resultaten in die precieze volgorde krijgt.

De geclusterde index bestaat meestal als een optimalisatie. PostgreSQL heeft een vergelijkbare CLUSTER functie om de fysieke volgorde te wijzigen, maar het is een zwaar proces dat de tabel vergrendelt:http://www.postgresql.org/docs/9.1/static/sql-cluster.html

Hoe een alfabetische volgorde van de rijen afdwingen?

Voeg een ORDER BY toe clausule in uw zoekopdracht.

SELECT * FROM table ORDER BY column



  1. Genereer datums tussen datumbereiken

  2. Mysql Tellen van de opeenvolgende rijen die overeenkomen

  3. Selecteer telafhankelijke rijen uit meerdere tabellen met unie

  4. Ontsnappen aan SQL-query's in Codeigniter