Buscar..


Observaciones

Una explicación de por qué querría usar la herencia en PostgreSQL está disponible aquí: http://stackoverflow.com/a/3075248/653378

Creando mesas infantiles

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

Nuestras tres mesas se ven así:

usuarios

Columna Tipo
nombre de usuario texto
correo electrónico texto

simples_usuarios

Columna Tipo
nombre de usuario texto
correo electrónico texto

users_with_password

Columna Tipo
nombre de usuario texto
correo electrónico texto
contraseña texto

Alterando mesas

Vamos a crear dos tablas simples:

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

Añadiendo columnas

ALTER TABLE simple_users ADD COLUMN password text;

simples_usuarios

Columna Tipo
nombre de usuario texto
correo electrónico texto
contraseña texto

Agregar la misma columna a la tabla principal combinará la definición de ambas columnas:

ALTER TABLE users ADD COLUMN password text;

AVISO: fusionar la definición de la columna "contraseña" para el niño "simple_users"

Caída de columnas

Usando nuestras tablas alteradas:

ALTER TABLE users DROP COLUMN password;

usuarios

Columna Tipo
nombre de usuario texto
correo electrónico texto

simples_usuarios

Columna Tipo
nombre de usuario texto
correo electrónico texto
contraseña texto

Desde que agregamos la columna a simple_users , PostgreSQL se asegura de que esta columna no se simple_users .

Ahora, si tuviéramos otra tabla secundaria, su columna de password , por supuesto, se habría eliminado.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow