MariaDBでは、LAST_INSERT_ID()
AUTO_INCREMENT
に正常に挿入された最初の自動生成値を返す組み込み関数です。 最後に実行されたINSERT
の結果としての列 ステートメント。
引数を使用して呼び出すこともできます。その場合、式の値と次のLAST_INSERT_ID()
の呼び出しを返します。 同じ値を返します。
構文
この関数は、次の方法で呼び出すことができます。
LAST_INSERT_ID()
LAST_INSERT_ID(expr)
expr
が返され、次のLAST_INSERT_ID()
の呼び出し 同じ値を返します。
例
例として、AUTO_INCREMENT
を使用してテーブルを作成しましょう。 列:
CREATE TABLE guest (
guest_id INT NOT NULL AUTO_INCREMENT,
guest_name VARCHAR(255) NOT NULL,
PRIMARY KEY (guest_id)
);
guest_id
列はAUTO_INCREMENT
を使用します その価値のために。
次に、いくつかの行を挿入します:
INSERT INTO guest (guest_name) VALUES ('Homer');
INSERT INTO guest (guest_name) VALUES ('Bart');
INSERT INTO guest (guest_name) VALUES ('Marge');
それでは、LAST_INSERT_ID()
を実行してみましょう。 :
SELECT LAST_INSERT_ID();
結果:
+------------------+ | LAST_INSERT_ID() | +------------------+ | 3 | +------------------+
3
を返します 。
次に、テーブル内のすべての行を返して、最後の行にAUTO_INCREMENT
があることを確認しましょう。 3
の値 挿入:
SELECT *
FROM guest;
結果:
+----------+------------+ | guest_id | guest_name | +----------+------------+ | 1 | Homer | | 2 | Bart | | 3 | Marge | +----------+------------+
guest_id
列は3
まで上がります 。
引数を含める
前述のように、引数を指定して呼び出された場合、関数は式の値と次のLAST_INSERT_ID()
の呼び出しを返します。 同じ値を返します。
SELECT LAST_INSERT_ID(9);
結果:
+-------------------+ | LAST_INSERT_ID(9) | +-------------------+ | 9 | +-------------------+
もう一度呼び出しますが、引数はありません:
SELECT LAST_INSERT_ID();
結果:
+------------------+ | LAST_INSERT_ID() | +------------------+ | 9 | +------------------+
それでも9
の値を返します 。
ただし、guest
に値を挿入し続ける場合 テーブル、AUTO_INCREMENT
そのテーブルで中断したところから続行します:
INSERT INTO guest (guest_name) VALUES ('Lisa');
それでは、LAST_INSERT_ID()
を実行してみましょう。 :
SELECT LAST_INSERT_ID();
結果:
+------------------+ | LAST_INSERT_ID() | +------------------+ | 4 | +------------------+
4
を返します 。
そして、現在のテーブルは次のようになっています。
SELECT *
FROM guest;
結果:
+----------+------------+ | guest_id | guest_name | +----------+------------+ | 1 | Homer | | 2 | Bart | | 3 | Marge | | 4 | Lisa | +----------+------------+
この関数の詳細については、MariaDBのドキュメントを参照してください。