Maison > base de données > tutoriel mysql > Comment récupérer l'ID d'auto-incrémentation à partir des instructions préparées ?

Comment récupérer l'ID d'auto-incrémentation à partir des instructions préparées ?

DDD
Libérer: 2024-11-19 21:04:02
original
492 Les gens l'ont consulté

How to Retrieve Autoincrement ID from Prepared Statements?

Récupération de l'ID d'auto-incrémentation à partir des instructions préparées

Lors de l'exécution de requêtes à l'aide d'instructions préparées, il peut être souhaitable de récupérer l'ID généré automatiquement associé à une ligne nouvellement insérée. Ceci est possible à l'aide d'instructions préparées, mais nécessite une légère modification de l'approche traditionnelle.

Dans les méthodes traditionnelles, la constante AutoGeneratedKeys est utilisée avec la méthodeexecuteUpdate() d'un objet Statement. Cependant, cette approche n'est pas applicable aux déclarations préparées. Au lieu de cela, les étapes suivantes peuvent être suivies :

  1. Spécifiez l'indicateur Statement.RETURN_GENERATED_KEYS comme deuxième paramètre de la méthode prepareStatement(). Ceci informe la base de données que la requête produira des clés générées automatiquement.
  2. Exécutez l'instruction préparée à l'aide de la méthode executeUpdate() comme d'habitude.
  3. Récupérez les clés générées à l'aide de la méthode getGeneratedKeys() de l'instruction préparée.
  4. Parcourez l'ensemble de résultats et récupérez l'instruction générée automatiquement. ID.

Voici un extrait de code modifié qui illustre cette approche :

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);
}
Copier après la connexion

En suivant ces étapes, vous pouvez récupérer avec succès l'ID généré automatiquement à partir d'une instruction préparée, permettant vous pour accéder à l'identifiant unique de la ligne nouvellement insérée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal