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

Les tuples ne sont pas insérés séquentiellement dans la table de base de données ?

C'est un malentendu. Il n'y a pas d'ordre "naturel" dans une table de base de données relationnelle. Alors que les lignes sont normalement insérées en séquence dans le fichier physique contenant une table, un large éventail d'activités peut modifier l'ordre physique. Et les requêtes faisant autre chose qu'une analyse séquentielle de base (non parallèle) peuvent renvoyer des lignes dans n'importe quel ordre opportun. C'est selon le SQL standard.

L'ordre que vous voyez est arbitraire, sauf si vous ajoutez ORDER BY à la requête.

pgAdmin3 classe par défaut les lignes par clé primaire (sauf indication contraire). Votre colonne est de type varchar et les lignes sont classées par ordre alphabétique (selon vos paramètres régionaux actuels). Tout à dessein, tout comme il se doit.

Pour trier les lignes comme vous semblez vous y attendre, vous pouvez remplir un "0" dans votre texte :

...
typename_0009
typename_0010
...

La solution appropriée serait d'avoir une colonne numérique avec juste le nombre, cependant.

Vous pourriez être intéressé par le tri naturel. Vous pouvez également être intéressé par un serial colonne.