2017-07-18 3 views
-2

Ich bin neu in PostgreSQL, also nehmen Sie es mir einfach. Ich habe zwei Tabellen mit der gleichen Anzahl von Zeilen. Diese beiden Tabellen teilen Spalten, deren Attribute identisch sein müssen. Was ich will ist, dass wenn ich die Spalten der Beispieltabelle eins aktualisiere, automatisch bei den Spalten der Tabelle zwei aktualisiert werde. Entschuldigung für mein Englisch Ich hoffe, dass du meine Frage verstanden hast.Automatisch zwei Tabellen aktualisieren

+0

Sie sollten Trigger- 'AFTER INSERT ON example_table_1' verwenden. Wenn Sie Tabellenstrukturen für beide Tabellen veröffentlichen und Ihren genauen Bedarf erläutern, erhalten Sie hilfreichere Antworten. –

+0

Sie können mehr über Trigger [hier] erfahren (https://www.postgresql.org/docs/current/static/plpgsql-trigger.html) – Sevanteri

+0

Bitte ** [EDIT] ** Ihre Frage und fügen Sie einige Beispieldaten und die erwartete Ausgabe basierend auf diesen Daten. [** Formatierter Text **] (http://stackoverflow.com/help/formatting) bitte, [** keine Screenshots **] (http://meta.stackoverflow.com/questions/285551/why-may -I-nicht-Upload-Bilder-of-Code-auf-so-wenn-eine Frage zu stellen/285557 # 285557). ** [Bearbeiten] ** Ihre Frage - tun ** nicht ** Postleitzahl oder zusätzliche Informationen in Kommentaren. –

Antwort

1

Wie in den Kommentaren erwähnt, könnten Sie einen Trigger erstellen, der Tabelle 2 aktualisiert, sobald Tabelle 1 aktualisiert wird.

Aber ich würde sagen, dass Sie die Datenredundanz loswerden sollten, die das Problem an erster Stelle verursacht. Anstatt die Daten zweimal zu speichern, speichern Sie sie nur einmal (möglicherweise in einer dritten Tabelle) und beziehen sich auf die Daten mit einem Fremdschlüssel, anstatt sie zu kopieren.

Wenn Sie Redundanz loszuwerden, haben Sie mehrere Vorteile:

  1. Weniger Speicher verwendet wird.

  2. Weniger Arbeit, wenn Daten geändert werden.

  3. Die Daten können nicht inkonsistent werden, was passieren würde, wenn nur eine der Kopien geändert wird.

+0

Die Idee dahinter ist, dass ich eine Anwendung aus dieser Tabelle machen möchte, ich kann es nicht mit Tabelle 1 Beispiel tun, da es andere Daten gibt, die ich nicht in meiner App einschließen möchte. Deshalb habe ich bestimmte Spalten in Tabelle 2. Beispiel Table1 Id Namen Familienname Geburtstag Tabelle 2 Id Namen Nachname kopieren wollte –

Verwandte Themen