PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

PostgreSQL - Mise à jour de la table dans une fonction que j'ai créée et maintenant l'ordre des lignes dans la table a changé

Une table n'a pas d'ordre naturel des lignes, certains systèmes de base de données refuseront en fait votre requête si vous n'ajoutez pas un ORDER BY clause à la fin de votre SELECT

Pourquoi la commande a-t-elle changé ?

Parce que le moteur de base de données récupère vos lignes dans l'ordre physique où elles proviennent du stockage. Certains moteurs, comme SQL Server, peuvent avoir un CLUSTERED INDEX qui force un ordre physique, mais il n'est toujours pas vraiment garanti que vous obteniez vos résultats dans cet ordre précis.

L'index clusterisé existe principalement en tant qu'optimisation. PostgreSQL a un CLUSTER similaire fonction pour changer l'ordre physique, mais c'est un processus lourd qui verrouille la table :http://www.postgresql.org/docs/9.1/static/sql-cluster.html

Comment forcer un ordre alphabétique des lignes ?

Ajouter un ORDER BY clause dans votre requête.

SELECT * FROM table ORDER BY column