サーチ…


備考

PostgreSQLで継承を使用する理由については、ここで説明しています。http : //stackoverflow.com/a/3075248/653378

子テーブルの作成

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

3つのテーブルは次のようになります。

ユーザー

カラムタイプ
ユーザー名テキスト
Eメールテキスト

シンプルユーザー

カラムタイプ
ユーザー名テキスト
Eメールテキスト

users_with_password

カラムタイプ
ユーザー名テキスト
Eメールテキスト
パスワードテキスト

テーブルの変更

2つの簡単なテーブルを作成しましょう:

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

列を追加する

ALTER TABLE simple_users ADD COLUMN password text;

シンプルユーザー

カラムタイプ
ユーザー名テキスト
Eメールテキスト
パスワードテキスト

親テーブルに同じ列を追加すると、両方の列の定義がマージされます。

ALTER TABLE users ADD COLUMN password text;

注意:子「simple_users」のカラム「password」の定義をマージ

列を削除する

変更されたテーブルを使用する:

ALTER TABLE users DROP COLUMN password;

ユーザー

カラムタイプ
ユーザー名テキスト
Eメールテキスト

シンプルユーザー

カラムタイプ
ユーザー名テキスト
Eメールテキスト
パスワードテキスト

最初にカラムをsimple_users追加してから、PostgreSQLはこのカラムが削除されないようにします。

今、別の子テーブルがあれば、そのpassword列は削除されています。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow