Recherche…


Remarques

Une explication de la raison pour laquelle vous souhaitez utiliser l'héritage dans PostgreSQL est disponible ici: http://stackoverflow.com/a/3075248/653378

Créer des tables enfants

CREATE TABLE users (username text, email text);
CREATE TABLE simple_users () INHERITS (users);
CREATE TABLE users_with_password (password text) INHERITS (users);

Nos trois tableaux ressemblent à ceci:

utilisateurs

Colonne Type
Nom d'utilisateur texte
email texte

simple_users

Colonne Type
Nom d'utilisateur texte
email texte

users_with_password

Colonne Type
Nom d'utilisateur texte
email texte
mot de passe texte

Modification de tables

Créons deux tables simples:

CREATE TABLE users (username text, email text);
CREATE TABLE simple_users () INHERITS (users);

Ajouter des colonnes

ALTER TABLE simple_users ADD COLUMN password text;

simple_users

Colonne Type
Nom d'utilisateur texte
email texte
mot de passe texte

L'ajout de la même colonne à la table parente va fusionner la définition des deux colonnes:

ALTER TABLE users ADD COLUMN password text;

AVIS: fusion de la définition de la colonne "mot de passe" pour l'enfant "simple_users"

Supprimer des colonnes

En utilisant nos tables modifiées:

ALTER TABLE users DROP COLUMN password;

utilisateurs

Colonne Type
Nom d'utilisateur texte
email texte

simple_users

Colonne Type
Nom d'utilisateur texte
email texte
mot de passe texte

Depuis que nous avons ajouté la colonne à simple_users , PostgreSQL simple_users s'assure que cette colonne n'est pas supprimée.

Maintenant, si nous avions une autre table enfant, sa colonne de password aurait bien sûr été supprimée.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow