To jest obecne zachowanie PostgreSQL. Unikalne indeksy dotyczą partycji, a nie całej tabeli. Masz kilka opcji:
-
Jeśli to w ogóle możliwe, podziel tabele na partycje tak, aby zakresy kluczy były w jakiś sposób wykluczające. Innymi słowy, podziel na kluczowe dane. To najłatwiejsze i najbardziej bezproblemowe podejście. Tutaj partycjonujesz dane bez klucza, co stanowi problem.
-
Jeśli to nie zadziała, możesz dodać wartość partycji po drugiej stronie złączenia. Pamiętaj, że w tym momencie potrzebujesz niestandardowych wyzwalaczy klawiszy funkcyjnych.
-
Jeśli naprawdę potrzebujesz, możesz utworzyć zmaterializowany widok wszystkich identyfikatorów obsługiwany przez wyzwalacze i utworzyć na jego podstawie unikalny indeks.