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

Index unique sur les partitions postgresql

C'est le comportement actuel de PostgreSQL. Les index uniques s'adressent à la partition, pas à la table dans son ensemble. Vous avez plusieurs options :

  1. Si possible, partitionnez vos tables afin que les plages de clés soient exclusives d'une manière ou d'une autre. En d'autres termes, partitionnez sur les données clés. C'est l'approche la plus simple et la plus simple. Ici, vous partitionnez sur des données non clés, ce qui pose problème.

  2. Si cela ne fonctionne pas, vous pouvez ajouter la valeur de partition de l'autre côté de la jointure. Notez qu'à ce stade, vous avez besoin de déclencheurs fkey personnalisés.

  3. Si vous en avez vraiment besoin, vous pouvez créer une vue matérialisée gérée par un déclencheur de tous les identifiants et créer un index unique dessus.