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