Équivalent de séquence d'Oracle dans MySQL : incrémentation automatique avec LAST_INSERT_ID()
Dans Oracle, NEXTVAL est utilisé pour récupérer la valeur de séquence suivante sans insérer une ligne. MySQL fournit une fonctionnalité similaire via l'attribut de colonne AUTO_INCREMENT et la fonction LAST_INSERT_ID().
Incrémentation automatique dans MySQL
L'attribut AUTO_INCREMENT attribue des valeurs numériques uniques aux valeurs numériques nouvellement insérées. rangées. Lorsqu'il est défini sur une colonne, MySQL incrémentera automatiquement sa valeur à chaque insertion.
Utilisation de LAST_INSERT_ID()
LAST_INSERT_ID() récupère la valeur AUTO_INCREMENT la plus récente générée par le connexion actuelle. Il peut être utilisé pour obtenir l'ID de la dernière ligne insérée, quelle que soit la requête qui l'a générée.
Exemple
Considérons le tableau suivant avec une colonne d'identifiant AUTO_INCREMENT :
CREATE TABLE animals ( id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (id) );
Pour simuler NEXTVAL dans Oracle, exécutez la requête suivante dans MySQL :
SELECT LAST_INSERT_ID();
Cette requête renverra la prochaine valeur AUTO_INCREMENT sans modifier la table.
Modèle Spring JDBC
Pour utiliser LAST_INSERT_ID() avec le modèle Spring JDBC, vous pouvez utiliser la méthode de requête et gérer le ResultSet renvoyé pour récupérer le valeur.
Par exemple :
int nextId = jdbcTemplate.query("SELECT LAST_INSERT_ID()", (ResultSet rs) -> { if (rs.next()) { return rs.getInt(1); } else { return 0; } });
Ce code exécute la requête LAST_INSERT_ID() et renvoie la valeur récupérée sous forme d'entier.
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!