postgresql
Erfenis
Zoeken…
Opmerkingen
Een verklaring waarom u overerving in PostgreSQL wilt gebruiken, is hier beschikbaar: http://stackoverflow.com/a/3075248/653378
Kindertafels maken
CREATE TABLE users (username text, email text);
CREATE TABLE simple_users () INHERITS (users);
CREATE TABLE users_with_password (password text) INHERITS (users);
Onze drie tabellen zien er zo uit:
gebruikers
Kolom | Type |
---|---|
gebruikersnaam | tekst |
tekst |
simple_users
Kolom | Type |
---|---|
gebruikersnaam | tekst |
tekst |
users_with_password
Kolom | Type |
---|---|
gebruikersnaam | tekst |
tekst | |
wachtwoord | tekst |
Aanpassen van tabellen
Laten we twee eenvoudige tabellen maken:
CREATE TABLE users (username text, email text);
CREATE TABLE simple_users () INHERITS (users);
Kolommen toevoegen
ALTER TABLE simple_users ADD COLUMN password text;
simple_users
Kolom | Type |
---|---|
gebruikersnaam | tekst |
tekst | |
wachtwoord | tekst |
Als u dezelfde kolom toevoegt aan de bovenliggende tabel, wordt de definitie van beide kolommen samengevoegd:
ALTER TABLE users ADD COLUMN password text;
LET OP: samenvoeging van de definitie van kolom "wachtwoord" voor onderliggende "simple_users"
Kolommen laten vallen
Met behulp van onze gewijzigde tabellen:
ALTER TABLE users DROP COLUMN password;
gebruikers
Kolom | Type |
---|---|
gebruikersnaam | tekst |
tekst |
simple_users
Kolom | Type |
---|---|
gebruikersnaam | tekst |
tekst | |
wachtwoord | tekst |
Omdat we de kolom eerst aan simple_users
hebben toegevoegd, zorgt PostgreSQL ervoor dat deze kolom niet wordt verwijderd.
Als we nu een andere onderliggende tabel hadden, zou de password
natuurlijk zijn verwijderd.
Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow