どのデータベースでも、ユニークにオートインクリメント(自動採番)するテーブルを作成するのが一般的だと思います。
データベースの一つである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を取得することができます。
もし他に何か質問がありましたら、お気軽にお聞きください。

コメント