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
e-mail tekst

simple_users

Kolom Type
gebruikersnaam tekst
e-mail tekst

users_with_password

Kolom Type
gebruikersnaam tekst
e-mail 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
e-mail 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
e-mail tekst

simple_users

Kolom Type
gebruikersnaam tekst
e-mail 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