PostgreSQLで登録(insert)したレコードのIDを取得する方法

postgresql-returning
  • URLをコピーしました!

どのデータベースでも、ユニークにオートインクリメント(自動採番)するテーブルを作成するのが一般的だと思います。
データベースの一つであるPostgreSQLでは、データを登録(insert)する際に、登録したIDを返す方法があります。
この方法を使うことで、登録したデータのIDを簡単に取得することができ、次の処理に利用することができます。

目次

ID付きのテーブルを作成する

まずはPostgreSQLに、オートインクリメント(自動採番)するIDカラムを持つテーブルを作成しましょう。
一般的な方法は、SERIAL データ型を使用することです。
SERIAL データ型は、自動的に増加する整数値を生成するための特殊なデータ型です。

以下のSQL文を使用して、オートインクリメントするIDのカラムを持つテーブルを作成します。

上記のSQL文では、id カラムに SERIAL データ型を使用し、PRIMARY KEY 制約を設定しています。
PRIMARY KEY 制約は、一意の識別子として機能し、テーブル内の各行を一意に識別します。

作成したテーブルにデータを登録する際に、登録したID取得する方法についても解説します。

insertしたIDを返す方法(returning句の使用)

PostgreSQLでは、INSERT 文の実行時に RETURNING 句を使用することで、挿入されたデータの特定の列の値を取得することができます。

以下のサンプルSQL文を使用して、データを登録し、登録したID取得する方法を説明します。

上記のSQL文では、INSERT INTO 句を使用してデータを挿入し、RETURNING 句を使用して id カラムの値を取得しています。

この方法を使用すると、データを登録した後に、直接ID取得することができます。

【おまけ】insertした後にIDを簡単に取得する方法

PostgreSQLでは、INSERT 文を実行した後に自動的に生成されたIDを取得するための便利な方法があります。
これは、RETURNING 句を使用する代わりに、INSERT INTO 文の後に lastval() 関数を使用する方法です。

以下のサンプルSQL文を使用して、登録したデータのIDを取得する最も簡単な方法を説明します。

上記のSQL文では、まず INSERT INTO句を使用してデータを挿入し、その後にSELECT lastval();を実行しています。lastval()関数は、直近のINSERT文で生成されたシーケンスの現在の値を返します。

この方法を使用すると、データを登録した後に、簡単に登録したID取得することができます。

以上が、PostgreSQLでオートインクリメントするIDのカラムを持つテーブルに登録したID取得する方法についての解説です。
これらの方法を使用することで、効果的に登録したデータのIDを取得することができます。

もし他に何か質問がありましたら、お気軽にお聞きください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次