Suche…


Bemerkungen

Eine Erklärung, warum Sie die Vererbung in PostgreSQL verwenden möchten, finden Sie hier: http://stackoverflow.com/a/3075248/653378

Kindertabellen erstellen

CREATE TABLE users (username text, email text);
CREATE TABLE simple_users () INHERITS (users);
CREATE TABLE users_with_password (password text) INHERITS (users);

Unsere drei Tische sehen so aus:

Benutzer

Säule Art
Nutzername Text
Email Text

simple_users

Säule Art
Nutzername Text
Email Text

Benutzer_mit_Kennwort

Säule Art
Nutzername Text
Email Text
Passwort Text

Tabellen ändern

Lassen Sie uns zwei einfache Tabellen erstellen:

CREATE TABLE users (username text, email text);
CREATE TABLE simple_users () INHERITS (users);

Spalten hinzufügen

ALTER TABLE simple_users ADD COLUMN password text;

simple_users

Säule Art
Nutzername Text
Email Text
Passwort Text

Durch Hinzufügen derselben Spalte zur übergeordneten Tabelle wird die Definition beider Spalten zusammengeführt:

ALTER TABLE users ADD COLUMN password text;

HINWEIS: Zusammenführen der Definition der Spalte "Kennwort" für untergeordnete "simple_users"

Spalten löschen

Verwenden Sie unsere geänderten Tabellen:

ALTER TABLE users DROP COLUMN password;

Benutzer

Säule Art
Nutzername Text
Email Text

simple_users

Säule Art
Nutzername Text
Email Text
Passwort Text

Da wir die Spalte zunächst zu simple_users hinzugefügt simple_users , stellt PostgreSQL sicher, dass diese Spalte nicht gelöscht wird.

Wenn wir jetzt eine andere untergeordnete Tabelle hätten, wäre die password natürlich gelöscht worden.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow