sql >> Database >  >> RDS >> PostgreSQL

Primaire sleutel met ASC- of DESC-bestelling?

Ik denk dat het redelijk zou zijn om dat te doen, aangezien semantisch een index in oplopende of aflopende volgorde hetzelfde is, maar PostgreSQL ondersteunt dit niet. Er is geen manier om de indexvolgorde te bepalen van een index die automatisch is gemaakt om een ​​primaire sleutel te ondersteunen.

Met PostgreSQL kunt u er geen maken door de index handmatig te maken als een UNIQUE index met DESC sorteervolgorde en maak vervolgens een gedeclareerde PRIMARY KEY beperking met het met behulp van ALTER TABLE ... ADD CONSTRAINT ... PRIMARY KEY USING INDEX ... . Het zal mislukken met:

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

Ik weet niet uit mijn hoofd waarom Pg dit vereist. Als u de broncode zoekt voor de bovenstaande fout, vindt u waarschijnlijk een geschikte opmerking.

U kunt PRIMARY KEY . krijgen -achtig gedrag zonder de metadata van de beperking, gewoon door de unieke index afzonderlijk te maken. Dat is misschien oké voor jou.



  1. Kan geen query's uitvoeren terwijl andere niet-gebufferde query's actief zijn in een lus

  2. mysql:hoe kan ik ORDER BY opslaan na LEFT JOIN zonder opnieuw te bestellen?

  3. Oracle Concurrent Manager

  4. WAMP virtuele host werkt niet