SQLite | SQLite関数 | 最後に追加したデータのROWIDを返す(last_insert_rowid関数)

last_insert_rowid関数を使用すると、テーブルに最後に追加したデータのROWIDを取得できます。ここでは、last_insert_rowid関数の使い方について説明します。

last_insert_rowid関数の使い方

last_insert_rowid関数は、最後に追加した行のROWIDを取得するために使用します。構文は次のとおりです。

last_insert_rowid()

ROWIDについては、ROWIDの参照とINTEGER PRIMARY KEYとの関係を参照してください。ROWIDは、テーブルに追加したデータに自動的に設定される特別な値です。最後に追加したデータのROWIDWHERE句で使用すると、その行の情報を取得できます。

実際に試してみましょう。まず、次のテーブルを作成します。

create table user (id integer, name text);
sqlite> create table user (id integer, name text);
sqlite>

INSERT文を使用して次のデータを追加します。

insert into user values (1, 'devkuma');
insert into user values (2, 'kimkc');
insert into user values (3, 'araikuma');
sqlite> insert into user values (1, 'devkuma');
sqlite> insert into user values (2, 'kimkc');
sqlite> insert into user values (3, 'araikuma');
sqlite>

SELECT文のWHERE句でlast_insert_rowid関数を使用し、userテーブルに最後に追加した行を取得します。

select * from user where rowid = last_insert_rowid();
sqlite> .mode column
sqlite> .header on
sqlite>
sqlite> select * from user where rowid = last_insert_rowid();
id          name
----------  ----------
3           araikuma
sqlite>

このように、最後に追加したデータを取得するために使用できます。