1. ホーム
  2. mysql

[解決済み] MySQLの挿入クエリから新しいレコードの主キーIDを取得する?

2022-03-17 23:58:46

質問

例えば、私がMySQLの INSERT をあるテーブルに挿入し、そのテーブルのカラムが item_id に設定されている autoincrementprimary key .

新しく生成された主キーの値をクエリに出力させるにはどうすればよいですか item_id を同じクエリで使用できますか?

現在、私はidを取得するために2つ目のクエリを実行していますが、これが間違った結果を生むかもしれないことを考えると、良い方法とは思えません...。

もしこれが不可能なら、正しいIDを確実に取得するためのベストプラクティスは何でしょうか?

どのように解決するのですか?

を使用する必要があります。 LAST_INSERT_ID() 関数を使用します。 http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id

Eg:

INSERT INTO table_name (col1, col2,...) VALUES ('val1', 'val2'...);
SELECT LAST_INSERT_ID();

これで PRIMARY KEY の最後の行の値です。 あなた を挿入した。

生成されたIDは、サーバーで管理されている 接続ごとに . つまり、この関数がクライアントに返す値は、 AUTO_INCREMENT カラムに影響を与える最新のステートメントに対して生成された最初の AUTO_INCREMENT 値であることを意味します。 そのクライアントが .

で返される値は LAST_INSERT_ID() はユーザー単位であり を使用することができます。 サーバー上で実行されている他のクエリによって 他のユーザーから .