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