PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Chiave primaria con ordinazione ASC o DESC?

Penso che sarebbe ragionevole farlo, poiché semanticamente un indice in ordine crescente o decrescente è lo stesso, ma PostgreSQL non lo supporta. Non è possibile controllare l'ordine dell'indice di un indice creato automaticamente per supportare una chiave primaria.

PostgreSQL non ti permetterà di crearne uno creando l'indice manualmente come UNIQUE indice con DESC ordinamento quindi creando una PRIMARY KEY dichiarata vincolo con esso usando ALTER TABLE ... ADD CONSTRAINT ... PRIMARY KEY USING INDEX ... . Fallirà con:

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

Non so a capofitto perché Pg lo richieda. La ricerca del codice sorgente per l'errore di cui sopra ti troverebbe probabilmente un commento adatto.

Puoi ottenere PRIMARY KEY -come il comportamento senza i metadati di vincolo semplicemente creando l'indice univoco separatamente. Potrebbe andar bene per te.