Dit is het huidige gedrag van PostgreSQL. Unieke indexen adresseren de partitie, niet de tabel als geheel. Je hebt een paar opties:
-
Partitioneer, indien mogelijk, uw tabellen zodat de sleutelbereiken op de een of andere manier exclusief zijn. Met andere woorden, partitie op belangrijke gegevens. Dit is de gemakkelijkste en meest probleemloze aanpak. Hier partitioneer je op niet-sleutelgegevens, wat een probleem is.
-
Als dat niet werkt, kun je de partitiewaarde aan de andere kant van de join toevoegen. Merk op dat je op dit punt aangepaste fkey-triggers nodig hebt.
-
Als het echt nodig is, kun je een door triggers onderhouden gematerialiseerde weergave van alle id's maken en daarop een unieke index maken.