sql >> Base de Datos >  >> RDS >> PostgreSQL

PostgreSQL:actualicé la tabla en una función que creé y ahora el orden de las filas en la tabla ha cambiado

Una tabla no tiene un orden de filas natural, algunos sistemas de bases de datos rechazarán su consulta si no agrega un ORDER BY cláusula al final de su SELECT

¿Por qué cambió el orden?

Porque el motor de la base de datos obtiene sus filas en el orden físico en que provienen del almacenamiento. Algunos motores, como SQL Server, pueden tener un CLUSTERED INDEX lo que fuerza un orden físico, pero aún así nunca está realmente garantizado que obtengas tus resultados en ese orden preciso.

El índice agrupado existe principalmente como una optimización. PostgreSQL tiene un CLUSTER similar función para cambiar el orden físico, pero es un proceso pesado que bloquea la tabla:http://www.postgresql.org/docs/9.1/static/sql-cluster.html

¿Cómo forzar un orden alfabético de las filas?

Agrega un ORDER BY cláusula en su consulta.

SELECT * FROM table ORDER BY column