SQL
Insertしたデータのシーケンスを取得
2009年07月26日
シーケンスを設定しているテーブルにデータをInsertすると、自動でシーケンス番号が登録されます。
この値を取得したい場合があります。
PostgreSQLでは、【RETURNING】という関数が用意されています。
シーケンスフィールドが、【id】だとすると、
INSERT talbe (field) VALUES ('Insertしたい値') RETURNING id;
で割り当てられたシーケンス番号が取得できます。
SELECT id FROM table;
のSQLを発行したときと同じように値が返ってきます。
ところが【RETURNING】関数は、PostgreSQL 8.2以上でサポートされている関数です。
8.2以下だと別の対処法が必要です。
あまり頻繁にデータが登録されるテーブルではないので、【MAX】関数を代用します。
SELECT MAX(id) FROM table;
PostgreSQLのバージョンチェックは、
SELECT version();
です。
この値を取得したい場合があります。
PostgreSQLでは、【RETURNING】という関数が用意されています。
シーケンスフィールドが、【id】だとすると、
INSERT talbe (field) VALUES ('Insertしたい値') RETURNING id;
で割り当てられたシーケンス番号が取得できます。
SELECT id FROM table;
のSQLを発行したときと同じように値が返ってきます。
ところが【RETURNING】関数は、PostgreSQL 8.2以上でサポートされている関数です。
8.2以下だと別の対処法が必要です。
あまり頻繁にデータが登録されるテーブルではないので、【MAX】関数を代用します。
SELECT MAX(id) FROM table;
PostgreSQLのバージョンチェックは、
SELECT version();
です。
コメント