記事
Mihoko Iijima · 2020年9月29日 2m read

SQLで最後に更新したIDを取得するには?

これはInterSystems FAQ サイトの記事です。


LAST_IDENTITY() SQL関数を使用すると取得できます。
※ この関数は、埋め込み SQL または ODBC 利用時に使用できます。ダイナミック SQL、SQL シェル、または管理ポータルの SQL インタフェースによる値には設定されません。

簡単な埋め込み SQL での例をご紹介します。

Class Test.SQL
{
ClassMethod GetLastID() As %Integer [ SqlProc ]
{
 //ソースコードコンパイル時に存在しないテーブルがあるので実行時にコンパイル
 #SQLCompile Mode=Deferred
 //テーブル作成
 &sql(CREATE TABLE Sample.Students (
   StudentName VARCHAR(30),
   StudentAge INTEGER,
   StudentID IDENTITY))
 //データ登録
 &sql(INSERT INTO Sample.Students (StudentName,StudentAge) values('生徒1',16))
 &sql(INSERT INTO Sample.Students (StudentName,StudentAge) values('生徒2',17))
 
//最後に更新したIDを取得
 &sql(SELECT LAST_IDENTITY() into :lastid from Sample.Students)
 return lastid
}
}

ストアドプロシージャとして実行した結果は以下の通りです(管理ポータルで実行しています)。


詳細は下記ドキュメントページもご参照ください。
LAST_IDENTITY【IRIS】
LAST_IDENTITY
 

00
1 0 0 32
Log in or sign up to continue