ホームページ > データベース > mysql チュートリアル > 準備されたステートメントから自動インクリメント ID を取得するにはどうすればよいですか?

準備されたステートメントから自動インクリメント ID を取得するにはどうすればよいですか?

DDD
リリース: 2024-11-19 21:04:02
オリジナル
514 人が閲覧しました

How to Retrieve Autoincrement ID from Prepared Statements?

プリペアド ステートメントからの自動インクリメント ID の取得

プリペアド ステートメントを使用してクエリを実行する場合、新しく挿入された行に関連付けられた自動生成された ID を取得することが望ましい場合があります。これは準備されたステートメントを使用して可能ですが、従来のアプローチに若干の変更が必要です。

従来の方法では、AutoGeneratedKeys 定数は Statement オブジェクトのexecuteUpdate() メソッドで使用されます。ただし、このアプローチは準備されたステートメントには適用できません。代わりに、次の手順を実行できます。

  1. prepareStatement() メソッドの 2 番目のパラメーターとして Statement.RETURN_GENERATED_KEYS フラグを指定します。これにより、クエリによって自動生成キーが生成されることがデータベースに通知されます。
  2. 通常どおり、executeUpdate() メソッドを使用して、準備されたステートメントを実行します。
  3. の getGeneratedKeys() メソッドを使用して、生成されたキーを取得します。準備されたステートメント。
  4. 結果セットを反復処理し、自動生成されたステートメントを取得します。 ID.

このアプローチを示す、変更されたコード スニペットを次に示します。

String sql = "INSERT INTO table (column1, column2) values(?, ?)";
stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);

stmt.executeUpdate();
if (returnLastInsertId) {
   ResultSet rs = stmt.getGeneratedKeys();
    rs.next();
   auto_id = rs.getInt(1);
}
ログイン後にコピー

これらの手順に従うことで、準備されたステートメントから自動生成された ID を正常に取得でき、新しく挿入された行の一意の識別子にアクセスできます。

以上が準備されたステートメントから自動インクリメント ID を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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