postgresql
Erbe
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 |
Text |
simple_users
Säule | Art |
---|---|
Nutzername | Text |
Text |
Benutzer_mit_Kennwort
Säule | Art |
---|---|
Nutzername | Text |
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 |
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 |
Text |
simple_users
Säule | Art |
---|---|
Nutzername | Text |
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