PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Eindeutiger Index über Postgresql-Partitionen

Dies ist das aktuelle Verhalten von PostgreSQL. Eindeutige Indizes adressieren die Partition, nicht die Tabelle als Ganzes. Sie haben einige Möglichkeiten:

  1. Wenn möglich, partitionieren Sie Ihre Tabellen so, dass die Schlüsselbereiche in irgendeiner Weise exklusiv sind. Mit anderen Worten, partitionieren Sie nach Schlüsseldaten. Dies ist der einfachste und unkomplizierteste Ansatz. Hier partitionieren Sie auf Nicht-Schlüsseldaten, was ein Problem darstellt.

  2. Wenn das nicht funktioniert, können Sie den Partitionswert auf der anderen Seite des Joins hinzufügen. Beachten Sie, dass Sie an dieser Stelle benutzerdefinierte Fkey-Trigger benötigen.

  3. Wenn Sie es wirklich brauchen, können Sie eine durch Trigger verwaltete materialisierte Ansicht aller IDs erstellen und einen eindeutigen Index darauf erstellen.