Postgres par défaut trier par id - worldship
J'ai besoin pour l'installation de worldship pour tirer à partir d'un de nos bases de données postgres. J'ai besoin de faire en sorte que les paquets sont triés par id. Je n'ai aucun moyen (que je suis au courant) d'avoir worldship envoyer la clause order by, donc j'ai besoin d'avoir la valeur par défaut pour les enregistrements retournés doivent être retournés par id.
Sur un deuxième remarque, je n'ai aucune idée de comment postgres par défaut sortes, il semble comme il en la dernière fois que l'enregistrement a été modifié de sorte que si j'écris un deux enregistrements id 1,2 ensuite modifier l'enregistrement 2 lorsque j'exécute la requête qu'il retourne avec un record de 2.
source d'informationauteur Ominus
Vous devez vous connecter pour publier un commentaire.
Les lignes sont retournées dans un ordre non spécifié, par sql specs, à moins d'ajouter une clause order by. Dans Postgres, cela signifie que vous obtiendrez des lignes, pour l'essentiel, l'ordre qui vivent lignes lues sur le disque.
Si vous voulez un ordre cohérent sans avoir besoin d'ajouter une clause order by, créer une vue comme suggéré dans la Prise de commentaire.
Il n'y a pas une telle chose comme un "tri par défaut". Des lignes dans un tableau ne sont pas triés.
Vous pourriez faux en vue (comme suggéré par Jack Maney) il n'y a aucun moyen que vous pouvez modifier l'ordre des lignes retournées.
Mais si vous le faites, sachez que l'ajout d'une COMMANDE supplémentaire PAR une sélection basée sur ce point de vue va trier les données deux fois.
Une autre option pourrait être pour exécuter la commande CLUSTER sur cette table physiquement ordre les lignes sur le disque en fonction de la colonne que vous souhaitez. Mais ce seuil ne garantit pas que les lignes sont retournées dans l'ordre. Même pas avec un simple
SELECT * FROM your_table
(mais les chances sont assez haute pour que).Vous aurez besoin de ré-exécuter cette déclaration sur une base régulière parce que l'ordre créés par la commande CLUSTER n'est pas mis à jour automatiquement.
On peut éventuellement utiliser un index trié, ce qui devrait garantir que vous afin de récupéré les lignes dans le cas où la requête plan de frappe de l'index, ou si vous avez de la force, mais cette approche sera plus long :).
ORDER BY
clause est le chemin à parcourir, comme déjà mentionné.