ホームページ > データベース > mysql チュートリアル > 最後に挿入された ID 値を取得するための最適な方法を選択するにはどうすればよいですか?

最後に挿入された ID 値を取得するための最適な方法を選択するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-01 08:21:10
オリジナル
362 人が閲覧しました

How to Choose the Best Method for Retrieving the Last Inserted Identity Value?

最後の ID の取得: メソッドの比較

挿入後に主キーの ID 値を取得する場合、複数のメソッドを使用できます。この記事では、ニーズに最適な方法を選択できるように、各方法の利点と制限事項を検討します。

方法の概要

次の方法が一般的に使用されます。

  • @@IDENTITY: 現在のテーブルに対して生成された最後の ID 値を返します。 connection.
  • SCOPE_IDENTITY(): テーブルに関係なく、現在のスコープ内で生成された最後の ID 値を返します。
  • OUTPUT Clause: 戻り値挿入によって生成されたすべての ID 値のテーブルstate.
  • IDENT_CURRENT('Table'): 特定のテーブルに対して生成された最後の ID 値を返します。

メソッド比較

@@IDENTITY は、によって生成された ID 値を返す可能性があるため、スコープセーフではありません。異なるステートメントまたはトリガー。 SCOPE_IDENTITY() はスコープセーフですが、テーブルに関係なく生成された最後の ID 値を返すため、場合によっては混乱を招く可能性があります。

OUTPUT 句は有利です。複数の ID 値または追加の列を取得する場合に使用しますが、どの列を返すかを明示的に指定する必要があります。 IDENT_CURRENT('Table') は、特定のテーブルの ID 値のみを取得する必要がある場合に便利です。

スコープの安全性に関する考慮事項

OUTPUT 句はスコープではありません-safe、単一の値ではなくテーブルを返すため。したがって、外部キー関係で主キー値を設定する場合など、単一の ID 値が予期されるコンテキストでは使用できません。

結論

方法の選択は、アプリケーションの特定の要件。スコープ付き ID 値の場合は、SCOPE_IDENTITY() が推奨されます。スコープのない ID 値の場合、または複数の ID 値を取得する場合は、OUTPUT が便利です。特定のテーブルの ID 値を取得するには、IDENT_CURRENT('Table') が適しています。

以上が最後に挿入された ID 値を取得するための最適な方法を選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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