Ich habe zwei Tabellen mit der gleichen Struktur, A und B. Eine bestimmte Anwendung ist so geschrieben, dass sie immer die gleichen Daten in beide Tabellen schreibt.
Nach einer Diskussion mit einem Kollegen über die Möglichkeit, Speicherplatz zu sparen, frage ich mich, ob MySQL oder PostgresQL die Möglichkeit haben, eine Tabelle als "Alias" oder "Symlink" eines anderen zu erstellen.
Ich möchte, dass das Verhalten dem eines Soft-File-Symlinks sehr ähnlich ist. Wenn das Lesen entweder vom Symlink selbst oder vom Ziel die gleiche Ausgabe liefert und das Schreiben in eines der beiden das Ziel aktualisiert.
mysql
postgresql
user50849
quelle
quelle
Antworten:
Soweit ich weiß, können Sie mit einem neuen Postgresql
INSTEAD OF
Auslöser für Ansichten erstellen. Eine Tabelle, eine Ansicht alsSELECT * FROM table1
und einINSTEAD OF
Auslöser fürinsert, update, delete
sollten also für Sie funktionieren. Dieser Ansatz wird in MySQL jedoch nicht funktionierenquelle
In MySQL (nur mit der MyISAM-Speicher-Engine) ist es möglich, mithilfe von Symlinks eine Tabelle von Grund auf neu zu erstellen. Es ist unter Linux und Windows möglich (über Hardlinks):
Hier sind meine früheren Beiträge zu diesem Thema
Was Sie jedoch vorschlagen, müsste außerhalb von MySQL unter Linux erfolgen.
Für dieses Beispiel
SCHRITT 01) Erstellen Sie Tabelle1
SCHRITT 02) Erstellen Sie drei Symlinks, um Tabelle B nachzuahmen
SCHRITT 03) Versuchen Sie, in Tabelle1 einzufügen und aus Tabelle2 zu lesen. Dann versuchen Sie es umgekehrt.
Wenn sich alles normal verhält, können Sie dies so tun.
VORBEHALT
quelle