logo

PostgreSQL ドロップカラム

このセクションでは、その方法について説明します。 列を削除します の助けを借りて 他の机 指示。

PostgreSQLのDROP COLUMNコマンド

テーブルの列を削除するには、ALTER TABLE コマンドで DROP COLUMN 条件を使用します。

 ALTER TABLE table_name DROP COLUMN column_name; 

PostgreSQL は、テーブルから列を削除するときにその列を含むすべての制約とインデックスを自動的に削除します。また、すべてのドロップ列条件は、 コンマ (、)

他のオブジェクトが依存しており、次のような他のデータベース オブジェクトでも使用されている列は削除できません。 トリガー、ビュー、ストアド プロシージャ、

したがって、これらの列とそれに接続されているすべてのオブジェクトを削除するには、 カスケード のオプション ドロップカラム 次のようにコマンドを実行します。

 ALTER TABLE table_name DROP COLUMN column_name CASCADE; 

存在しない列を削除したい場合、PostgreSQL で問題が発生します。以下のコマンドでわかるように、このエラーを解決するために、ドロップカラムコマンドに IF EXISTS 条件を追加します。

 ALTER TABLE table_name DROP COLUMN IF EXISTS column_name; 

上記のコマンドで、存在しない列を削除すると、PostgreSQL はエラーではなく通知を生成します。

単一のコマンドでテーブルのさまざまな列を削除する必要がある場合は、次のコマンドを使用します。

 ALTER TABLE table_name DROP COLUMN column_name_1, DROP COLUMN column_name_2; 

PostgreSQLのDROP COLUMNコマンドの例

の働きを理解するためにいくつかの例を見てみましょう。 テーブルドロップカラムの変更 指示。

そこで、次のような 3 つの異なるテーブルを作成します。 製品、カテゴリー、ブランド

PostgreSQL ドロップカラム

上の図では、それぞれ 製品 1 つだけ含まれています ブランド 、各ブランドには複数の製品がある場合があります。各製品は、 カテゴリー 、各カテゴリにはさまざまな商品を含めることができます。

次のコマンドは、3 つのテーブルを作成するために使用されます。 (カテゴリー、製品、ブランド) :

の作成 カテゴリー 以下のコマンドを使用してテーブルを表示します。

 CREATE TABLE Categories ( Cate_id serial PRIMARY KEY, Cate_name VARCHAR NOT NULL ); 

出力

上記のコマンドを実行すると、以下のメッセージが表示されます。の カテゴリー テーブルが作成されました。

PostgreSQL ドロップカラム

の作成 製品 次のステートメントを使用してテーブルを作成します。

 CREATE TABLE Product ( Pro_id serial PRIMARY KEY, Pro_name VARCHAR NOT NULL, Brand_id INT NOT NULL, Cate_id INT NOT NULL, List_price DECIMAL NOT NULL, Model_year SMALLINT NOT NULL, FOREIGN KEY (Cate_id) REFERENCES Categories (Cate_id), FOREIGN KEY (Brand_id) REFERENCES Brand (Brand_id) ); 

出力

上記のコマンドを実行すると、以下のメッセージが表示されます。の 製品 テーブルが作成されました。

PostgreSQL ドロップカラム

の作成 ブランド 次のコマンドを使用してテーブルを作成します。

 CREATE TABLE Brand ( Brand_id serial PRIMARY KEY, Brand_name VARCHAR NOT NULL ); 

出力

上記のコマンドを実行すると、以下のメッセージが表示されます。の ブランド テーブルが作成されました。

PostgreSQL ドロップカラム

さらに、に基づいてビューを作成します。 製品 そして ブランド 表は次のとおりです。

 CREATE VIEW Product_info AS SELECT Pro_id, Pro_name, Brand_name FROM Product p INNER JOIN Brand B ON B .Brand_id = p.Brand_id ORDER BY Pro_name; 

出力

上記のコマンドを実行すると、以下のメッセージが表示されます。の 製品情報 ビューが作成されました。

PostgreSQL ドロップカラム

を削除したい場合は、次のコマンドを使用します。 カテゴリーID のコラム 製品 テーブル:

 ALTER TABLE Product DROP COLUMN cate_id; 

出力

math.random Java

上記のコマンドを実行すると、以下のメッセージが表示されます。の カテゴリーID から削除された列 製品 テーブル。

PostgreSQL ドロップカラム

psql でテーブルを表示したい場合は、以下のコマンドを使用します。

 Javatpoint=# d Product; 

PostgreSQL ドロップカラム

上のスクリーンショットでわかるように、上記のコマンドは Cate_id 列 そして、 カテゴリーID 列を外部キー制約に挿入します。

次に、 ブランドID のコラムから 製品 テーブル。

 ALTER TABLE Product DROP COLUMN Brand_id; 

上記のコマンドを実行すると、PostgreSQL によって以下のエラーが発生します。

PostgreSQL ドロップカラム

それは、 製品情報 ビューは列を使用しています ブランドID 製品 テーブル。

そこで、私たちは、 カスケード 両方を削除するオプション ブランドID コラムと 製品情報 以下のコマンドのヘルプを使用して表示します。

 ALTER TABLE Product DROP COLUMN Brand_id CASCADE; 

上記のコマンドを実装すると、以下が発生します。 知らせ 特定の列を削除します。

PostgreSQL ドロップカラム

ここでは、両方をドロップします。 list_price と Model_year 単一のコマンドで列を作成するには、 複数のドロップカラム 以下のように条件を設定します。

 ALTER TABLE Product DROP COLUMN List_Price, DROP COLUMN Model_year; 

出力

上記のコマンドを実行すると、次のメッセージ ウィンドウが表示されます。 List_price 列と Model_year 列 から落とされました 製品 テーブル。

PostgreSQL ドロップカラム

上記の操作が正常に動作しているかどうかを確認したい場合は、 選択する 指示:

 Select * from Product ; 

出力

上記のコマンドを実行すると、以下の出力が得られます。

PostgreSQL ドロップカラム