sql >> データベース >  >> RDS >> MariaDB

MariaDB LAST_INSERT_ID()の説明

    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のドキュメントを参照してください。


    1. ドキュメントをAzureDataLakeにアップロードし、SSISを使用してデータをエクスポートします

    2. ポイントインタイムリカバリを使用してPostgreSQLデータベースのRPOを最小化する方法

    3. MicrosoftAccess使用時のアーキテクチャの不一致エラーの回避策

    4. MariaDB JSON_SET()の説明