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を把握でき、親子関係にあるテーブルへの連続挿入など、関連レコードを正しく紐付ける処理を効率的に実装できます。
-
JavaでMySQLデータベースのテーブルから最後のレコードを取得する方法
MySQLデータベースからデータを取得するには、JavaのexecuteQuery()メソッドを使用します。本記事では、テーブルに登録された最後のレコード(最新の1件)をJavaプログラムで取得する手順を、サンプルコード付きでわかりやすく解説します。1. MySQLデータベースにテーブルを作成するまず、MySQLデータベース上にテーブルを用意します。ここでは「sample」データベースに、以下のようなテーブルを作成します。mysql> create table javaGetDataDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRI
-
MySQLでテーブルから特定の行を抽出するクエリの書き方
MySQLでは、WHERE句とORDER BY、LIMITを組み合わせることで、テーブルから条件に合致する特定の行だけを効率的に取得できます。本記事では、実際にサンプルテーブルを作成し、特定の行を抽出するクエリの実行手順をわかりやすく解説します。 1. サンプルテーブルの作成 まず、CREATE TABLE文を使ってサンプル用のテーブルを作成します。ここでは「Section(組)」と「StudentName(生徒名)」という2つのカラムを持つテーブルを用意しました。 mysql> create table DemoTable1972 ( Section char(1),