/ / Hinzufügen einer Partition zu einer Postgres-Tabelle, die zum Einfügen verwendet wurde? - Postgresql, Partitionierung

Hinzufügen von Partition zu einer Postgres-Tabelle, die zum Einfügen in diesem Moment verwendet wurde? - Postgresql, Partitionierung

Ich überprüfe, wie wir der Tabelle eine Partition hinzufügen können, die momentan für das Einfügen verwendet wird.

Ich verwende Postgres 9.3 und habe grundlegende Partitionierungstabellen wie folgt erstellt.

  • Übergeordneter Tisch - Kunde
  • Kindertabellen - customer_month_01 bis customer_month_06

Ich habe den Auslöser beim Einfügen und Einfügen in alle Tabellen erstellt, die genau funktionieren. (Daten werden entsprechend der Trigger-Tabelle für die entsprechende Tabelle eingefügt)

Nun geht es mir darum, wie ich dem übergeordneten Element eine neue Partition hinzufügen kann, während die Datensätze eingefügt werden.

Ich habe die Triggerfunktion aktualisiert, aber ich bleibe dabeiHinzufügen dieses Auslösers zur Master-Tabelle (übergeordnete Tabelle). Um einen aktualisierten Abzug hinzuzufügen, muss ich den alten Abzug zuerst löschen. Da fortlaufende Einfügungen ausgeführt werden, wird der Einfügevorgang kurz nach dem Ablegen des Triggers in die übergeordnete Tabelle (innerhalb des Trigger-Drop-Fensters und Hinzufügen eines neuen Triggers) übernommen. Nachdem der Trigger neu erstellt wurde, muss ich die Daten manuell in die entsprechende Partition verschieben. Ich möchte das verhindern.

Wie kann ich diese Aufgabe ohne Einfügen in die übergeordnete Tabelle ausführen?

Antworten:

0 für die Antwort № 1

In diesem Fall reicht die Aktualisierung der Triggerfunktion aus. Nach dem Aktualisieren der Triggerfunktion werden neue Daten in die entsprechende untergeordnete Tabelle umgeleitet.

http://www.postgresql.org/docs/9.3/static/ddl-partitioning.html