ホームページ > データベース > mysql チュートリアル > ON DUPLICATE KEYを使用してMySQL INSERT/UPDATE後に行IDを取得する方法?

ON DUPLICATE KEYを使用してMySQL INSERT/UPDATE後に行IDを取得する方法?

Patricia Arquette
リリース: 2024-12-02 15:07:11
オリジナル
935 人が閲覧しました

How to Get the Row ID After MySQL INSERT/UPDATE with ON DUPLICATE KEY?

ON DUPLICATE KEY を使用した INSERT/UPDATE の行 ID の取得

質問:

方法ON で INSERT または UPDATE を実行した後に行の ID を取得できますかMySQL で個別のクエリを実行せずに DUPLICATE KEY を実行できますか?

回答:

これを実現するには、回避策として LAST_INSERT_ID(expr) 関数を使用できます。この関数に式を渡すことで、LAST_INSERT_ID を更新に意味のあるものにすることができます。

説明:

リンクされたドキュメントに記載されているとおり(https://web.archive.org/web/20150329004325/https://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html)、LAST_INSERT_ID() は通常、' のみを返します。成功した INSERT の「挿入済み」ID。

ただし、LAST_INSERT_ID(expr) を使用する場合ON DUPLICATE KEY UPDATE 句で、更新にも意味のあるものにすることができます。

たとえば、'id' が AUTO_INCREMENT 列の場合、クエリを次のように変更できます:

INSERT INTO table (a) VALUES (0)
ON DUPLICATE KEY UPDATE>
ログイン後にコピー

この場合、LAST_INSERT_ID(id) は、既存のレコードが見つかって更新された場合は更新された ID を返します。または、新しいレコードの ID を返します。重複が見つからなかった場合はレコードが挿入されました。

以上がON DUPLICATE KEYを使用してMySQL INSERT/UPDATE後に行IDを取得する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート