postgresql
Arv
Sök…
Anmärkningar
En förklaring till varför du vill använda arv i PostgreSQL finns här: http://stackoverflow.com/a/3075248/653378
Skapa barnbord
CREATE TABLE users (username text, email text);
CREATE TABLE simple_users () INHERITS (users);
CREATE TABLE users_with_password (password text) INHERITS (users);
Våra tre bord ser ut så här:
användare
Kolumn | Typ |
---|---|
Användarnamn | text |
e-post | text |
simple_users
Kolumn | Typ |
---|---|
Användarnamn | text |
e-post | text |
users_with_password
Kolumn | Typ |
---|---|
Användarnamn | text |
e-post | text |
Lösenord | text |
Förändra tabeller
Låt oss skapa två enkla tabeller:
CREATE TABLE users (username text, email text);
CREATE TABLE simple_users () INHERITS (users);
Lägga till kolumner
ALTER TABLE simple_users ADD COLUMN password text;
simple_users
Kolumn | Typ |
---|---|
Användarnamn | text |
e-post | text |
Lösenord | text |
Lägga till samma kolumn i överordnade tabeller kommer att slå samman definitionen av båda kolumnerna:
ALTER TABLE users ADD COLUMN password text;
ANMÄRKNING: sammanslagning av definitionen av kolumnen "lösenord" för barn "simple_users"
Släpp kolumner
Med hjälp av våra förändrade tabeller:
ALTER TABLE users DROP COLUMN password;
användare
Kolumn | Typ |
---|---|
Användarnamn | text |
e-post | text |
simple_users
Kolumn | Typ |
---|---|
Användarnamn | text |
e-post | text |
Lösenord | text |
Sedan vi först lägger till kolumnen till simple_users
PostgreSQL till att denna kolumn inte tappas.
Nu om vi hade ett annat password
skulle naturligtvis dess password
tappats.
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow