【MySQL】直前にINSERTしたレコードのIDを取得したい


例えば商品の購入履歴のテーブルがあるとします。
一回の購入はorder_headテーブルに、その明細はorder_bodyテーブルにINSERTされます。
その場合、order_headの主キーが外部キーになります。

処理の順番としては、

  1. order_headにレコードがINSERTされる
  2. order_headにINSERTしたレコードの主キーを取得
  3. 取得した主キーを外部キーとしてorder_bodyにINSERT

というところですかね。
今回はこの順番のうちに2の説明になります。

MAX()で取得することもできますが、今回はLAST_INSERT_ID()を紹介します。

LAST_INSERT_ID()は関数名の通り、最後にINSERTされたIDを取得するためのものです。
使い方は以下の通り

SELECT LAST_INSERT_ID();

FROM句はいりません。

ただし、この関数で取得できるのはAUTO_INCREMENTの値だけなので気をつけて下さい。

公式リファレンスはこちら

  • このエントリーをはてなブックマークに追加

PAGE TOP