MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのINSERTクエリで新規レコードのキーIDを取得する方法|LAST_INSERT_ID()の使い方

MySQLのLAST_INSERT_ID()関数で新規レコードのキーIDを取得する

MySQLでは、LAST_INSERT_ID()関数を利用することで、直近に挿入されたレコードのキーID(AUTO_INCREMENTで採番された値)を取得できます。本記事では、テーブルの作成からレコードの挿入まで、具体的なSQL例とともにその使い方をわかりやすく解説します。

1. テーブルを作成する

まず、CREATE TABLE文でテーブルを作成します。idカラムにはAUTO_INCREMENTを設定し、主キーとして定義しています。

mysql> create table LastInsertRecordIdDemo
   -> (
   -> id int auto_increment,
   -> value varchar(100),
   -> primary key(id)
   -> );
Query OK, 0 rows affected (0.52 sec)

2. レコードを挿入してLAST_INSERT_ID()を使う

テーブル作成後、レコードを挿入していきます。2つ目のINSERT文では、LAST_INSERT_ID()関数を使ってidの値を設定している点に注目してください。

mysql> insert into LastInsertRecordIdDemo values(1,'Low');
Query OK, 1 row affected (0.10 sec)

mysql> insert into LastInsertRecordIdDemo values(LAST_INSERT_ID(),'High');
Query OK, 1 row affected (0.11 sec)

3. 挿入されたレコードを確認する

SELECT文ですべてのレコードを表示してみましょう。

mysql> select *from LastInsertRecordIdDemo;

実行結果は以下の通りです。

+----+-------+
| id | value |
+----+-------+
|  1 | Low   |
|  2 | High  |
+----+-------+
2 rows in set (0.00 sec)

4. LAST_INSERT_ID()+1で連続したIDを挿入する

続いて、LAST_INSERT_ID()に1を加算することで、連続したIDを持つレコードを挿入してみます。

mysql> insert into LastInsertRecordIdDemo values(LAST_INSERT_ID()+1,'Medium');
Query OK, 1 row affected (0.08 sec)

再度SELECT文ですべてのレコードを表示します。

mysql> select *From LastInsertRecordIdDemo;

実行結果は以下の通りです。

+----+--------+
| id | value  |
+----+--------+
|  1 | Low    |
|  2 | High   |
|  3 | Medium |
+----+--------+
3 rows in set (0.00 sec)

まとめ

LAST_INSERT_ID()関数を使えば、同じセッション内で最後に自動採番されたIDを取得できます。この仕組みを活用すると、INSERT実行後に新規レコードのキーIDを把握でき、親子関係にあるテーブルへの連続挿入など、関連レコードを正しく紐付ける処理を効率的に実装できます。

  1. JavaでMySQLデータベースのテーブルから最後のレコードを取得する方法

    MySQLデータベースからデータを取得するには、JavaのexecuteQuery()メソッドを使用します。本記事では、テーブルに登録された最後のレコード(最新の1件)をJavaプログラムで取得する手順を、サンプルコード付きでわかりやすく解説します。1. MySQLデータベースにテーブルを作成するまず、MySQLデータベース上にテーブルを用意します。ここでは「sample」データベースに、以下のようなテーブルを作成します。mysql> create table javaGetDataDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRI

  2. MySQLでテーブルから特定の行を抽出するクエリの書き方

    MySQLでは、WHERE句とORDER BY、LIMITを組み合わせることで、テーブルから条件に合致する特定の行だけを効率的に取得できます。本記事では、実際にサンプルテーブルを作成し、特定の行を抽出するクエリの実行手順をわかりやすく解説します。 1. サンプルテーブルの作成 まず、CREATE TABLE文を使ってサンプル用のテーブルを作成します。ここでは「Section(組)」と「StudentName(生徒名)」という2つのカラムを持つテーブルを用意しました。 mysql> create table DemoTable1972 ( Section char(1),