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

Clé primaire avec ordre ASC ou DESC ?

Je pense qu'il serait raisonnable de le faire, car sémantiquement un index dans l'ordre croissant ou décroissant est le même, mais PostgreSQL ne le supporte pas. Il n'y a aucun moyen de contrôler l'ordre d'un index créé automatiquement pour sauvegarder une clé primaire.

PostgreSQL ne vous laissera pas en créer un en créant l'index manuellement en tant que UNIQUE index avec DESC ordre de tri puis création d'une PRIMARY KEY déclarée contrainte avec elle en utilisant ALTER TABLE ... ADD CONSTRAINT ... PRIMARY KEY USING INDEX ... . Il échouera avec :

ERROR:  index "foopk" does not have default sorting behavior

Je ne sais pas par cœur pourquoi Pg l'exige. La recherche du code source de l'erreur ci-dessus vous permettrait probablement de trouver un commentaire approprié.

Vous pouvez obtenir PRIMARY KEY -comportement similaire sans les métadonnées de contrainte simplement en créant l'index unique séparément. Cela pourrait vous convenir.