はじめに
PostgreSQLでは、ALTER TABLE
ALTER TABLE
ADD COLUMN
IF NOT EXISTS
ADD COLUMN
句を使用します。 このオプションは、列名がテーブルに存在しない場合にのみ、新しい列を追加するようにPostgreSQLに指示します。 この記事では、Postgres ADD COLUMN IF NOT EXISTSコマンドを詳しく見て、その使用例をいくつか確認します。
前提条件
このチュートリアルを最大限に活用するには、いくつかの前提条件が整っていることを確認する必要があります。
- Postgres ADD COLUMN IF NOT EXISTSコマンドの例をテストできるように、Postgresがコンピュータにインストールされている必要があります。
- この記事に記載されている手順に従うためには、PostgreSQLの基本的な知識がある必要があります。
Postgres IF NOT EXISTS構文
まず、ALTER TABLE
IF NOT EXISTS
オプションの構文を簡単に見てみましょう:1
2
存在しない場合は列を追加column_name
1
2 |
ALTER TABLE TABLE_NAME
存在しない場合は列を追加column_name |
この構文についてもう少し詳しく説明しましょう。
- まず、列を追加するテーブルの名前を指定します。
ADD COLUMN
IF NOT EXISTS
オプションを指定し、列の名前とそのデータ型を指定します。
IF NOT EXISTS
オプションは、指定された列名がテーブルに存在するかどうかをチェックします。 このオプションを指定すると、既に存在する列を追加しようとしてもエラーは返されません。
Postgres IF NOT EXISTS example
先に進む前に、例で使用するサンプルテーブルを作成しましょう。
1
2 3 4 5テーブル従業員を作成します( idシリアル主キー, 名前varchar(50), 位置varchar(50) ); |
employees
という名前のテーブルが作成されました。
Add column
さて、既存の列と同じ列名を持つ新しい列をテーブルに追加してみましょう。 私たちは、次のALTER TABLE
ステートメントを使用します:
1
2 |
ALTER TABLE employees ADD COLUMN名前varchar(50);
エラー: リレーション”employees”の列”name”は既に存在します |
employees
テーブルの列”name”が既に存在するため、この文はエラーを返します。 このエラーを回避するには、IF NOT EXISTS
オプションを使用します。 このオプションを使用して、私たちの声明がどのように見えるかを見てみましょう:
1
2 3 |
ALTER TABLE employees ADD COLUMN IF NOT EXISTS name VARCHAR(50);
注意:関係”employees”の列”name””already exists,skipping alter table |
注:上記のステートメントはエラーを返しませんでしたが、同じ名前の列が既に存在することを警告するメッ既存の列と同じ名前ではあるが異なるデータ型の列を追加しようとするとどうなると思いますか?
それを試してみましょう:
1
2 3 |
ALTER TABLE employees ADD COLUMN IF NOT EXISTS name TEXT;
NOT EXISTS NAME TEXT; NOT EXISTS NAME TEXT; NOT EXISTS NAME TEXT; NOT EXISTS NAME TEXT; NOT EXISTS NAME TEXT; NOT EXISTS NAME TEXT; NOT EXISTS NAME TEXT; NOT EXISTS NAME TEXT; NOT EXISTS NAME TEXT; NOT EXISTS NAME TEXT; NOT EXISTS NAME TEXT; NOT EXISTS NAME TEXT; NOT EXISTS NAME TEXT;: 関係”employees”の列”name”はすでに存在し、スキップ ALTER TABLE |
同じ名前の列が既に存在するため、列はまだ追加されません。
結論
PostgreSQLテーブルのいずれかに変更を加える必要がある場合、ALTER TABLE
IF ALREADY EXISTS
ADD COLUMN
ALTER TABLE
ステートメントで使用できます。 この記事では、Postgres ADD COLUMN IF ALREADY EXISTS文について説明し、その使用方法のいくつかの例をレビューしました。 例とステップバイステップの手順を使用すると、独自のPostgreSQLデータベースでエラーが発生することなく、テーブルに列を追加することができます。