Maison >base de données >tutoriel mysql >Comment récupérer le dernier ID de ligne inséré dans SQL ?

Comment récupérer le dernier ID de ligne inséré dans SQL ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-13 13:21:43457parcourir

How to Retrieve the Last Inserted Row ID in SQL?

Accès à l'ID de la ligne la plus récemment ajoutée dans SQL

Après avoir inséré de nouvelles données dans une table de base de données, vous devez souvent récupérer l'ID généré automatiquement de la nouvelle ligne. Cet article présente plusieurs méthodes SQL pour obtenir cet identifiant, évitant ainsi le besoin de tables temporaires.

SCOPE_IDENTITY()

Pour les tables avec une colonne INT ou BIGINT définie comme colonne d'identité, SCOPE_IDENTITY() récupère efficacement l'ID suite à une instruction INSERT. Voici comment :

<code class="language-sql">INSERT INTO dbo.YourTable(columns....)
VALUES(..........)

SELECT SCOPE_IDENTITY()</code>

Cela renvoie la valeur d'identité la plus récemment insérée dans la portée actuelle (qui peut être affectée par les transactions imbriquées).

@@IDENTITÉ

@@IDENTITY est une variable globale contenant la dernière valeur d'identité attribuée. Utilisez-le comme ceci :

<code class="language-sql">INSERT INTO dbo.YourTable(columns....)
VALUES(..........)

SELECT @@IDENTITY</code>

Cependant, @@IDENTITY reflète la dernière valeur d'identité dans toutes les étendues, y compris potentiellement les insertions antérieures dans les transactions imbriquées. Cela pourrait donner des résultats incorrects si plusieurs insertions ont eu lieu au cours de la même session.

IDENT_CURRENT()

IDENT_CURRENT() propose une autre option. Il récupère la valeur d'identité d'une table spécifique, quelle que soit la portée ou la transaction :

<code class="language-sql">INSERT INTO dbo.YourTable(columns....)
VALUES(..........)

SELECT IDENT_CURRENT('dbo.YourTable')</code>

IDENT_CURRENT() garantit que l'ID provient de la table spécifiée, même avec plusieurs insertions dans des transactions imbriquées.

Résumé

Les développeurs de bases de données doivent comprendre ces différentes méthodes pour récupérer le dernier ID de ligne inséré. Choisir la bonne méthode, en fonction de la structure de votre table et du contexte de vos opérations, garantit une récupération précise des identifiants et maintient l'intégrité des données.

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!

Déclaration:
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