Postgres ADD COLUMN IF NOT EXISTSを実行する方法

はじめに

PostgreSQLでは、ALTER TABLEALTER TABLEADD COLUMNIF NOT EXISTSADD COLUMN句を使用します。 このオプションは、列名がテーブルに存在しない場合にのみ、新しい列を追加するようにPostgreSQLに指示します。 この記事では、Postgres ADD COLUMN IF NOT EXISTSコマンドを詳しく見て、その使用例をいくつか確認します。

前提条件

このチュートリアルを最大限に活用するには、いくつかの前提条件が整っていることを確認する必要があります。

  • Postgres ADD COLUMN IF NOT EXISTSコマンドの例をテストできるように、Postgresがコンピュータにインストールされている必要があります。
  • この記事に記載されている手順に従うためには、PostgreSQLの基本的な知識がある必要があります。

Postgres IF NOT EXISTS構文

まず、ALTER TABLEIF NOT EXISTSオプションの構文を簡単に見てみましょう:1
2

ALTER TABLE TABLE_NAME
存在しない場合は列を追加column_name
1
2
ALTER TABLE TABLE_NAME
存在しない場合は列を追加column_name

この構文についてもう少し詳しく説明しましょう。

  • まず、列を追加するテーブルの名前を指定します。
  • ADD COLUMNIF 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 TABLEIF ALREADY EXISTSADD COLUMNALTER TABLEステートメントで使用できます。 この記事では、Postgres ADD COLUMN IF ALREADY EXISTS文について説明し、その使用方法のいくつかの例をレビューしました。 例とステップバイステップの手順を使用すると、独自のPostgreSQLデータベースでエラーが発生することなく、テーブルに列を追加することができます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です