Maison >base de données >tutoriel mysql >Comment puis-je récupérer des valeurs d'identité après un INSERT à l'aide de la clause OUTPUT ?

Comment puis-je récupérer des valeurs d'identité après un INSERT à l'aide de la clause OUTPUT ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-17 12:36:11575parcourir

How Can I Retrieve Identity Values After an INSERT Using the OUTPUT Clause?

Accès aux valeurs d'identité nouvellement générées avec la clause OUTPUT

L'insertion de données dans des tables contenant des colonnes d'identité nécessite souvent de récupérer l'ID nouvellement généré. La clause OUTPUT fournit un moyen efficace d'y parvenir, éliminant le besoin de requêtes supplémentaires.

Approche 1 : SORTIE vers une variable de table

Cette méthode dirige la valeur d'identité vers une variable de table déclarée.

<code class="language-sql">DECLARE @OutputTbl TABLE (ID INT);

INSERT INTO MyTable (Name, Address, PhoneNo)
OUTPUT INSERTED.ID INTO @OutputTbl (ID)
VALUES ('Yatrix', '1234 Address Stuff', '1112223333');</code>

La variable @OutputTbl contient désormais l'ID généré.

Approche 2 : SORTIE vers une variable non-table

Certains systèmes de bases de données (comme SQL Server) prennent en charge la sortie directe vers des variables non-tableaux. Notez que cela n’est pas universellement pris en charge ; PostgreSQL, par exemple, utilise RETURNING à la place.

Exemple de serveur SQL :

<code class="language-sql">DECLARE @ID INT;

INSERT INTO MyTable (Name, Address, PhoneNo)
OUTPUT INSERTED.ID INTO @ID
VALUES ('Yatrix', '1234 Address Stuff', '1112223333');</code>

L'identifiant est stocké dans @ID.

Exemple PostgreSQL :

<code class="language-sql">INSERT INTO MyTable (Name, Address, PhoneNo)
RETURNING Id INTO @ID
VALUES ('Yatrix', '1234 Address Stuff', '1112223333');</code>

Ici, @ID reçoit la pièce d'identité renvoyée. La clause RETURNING fonctionne de la même manière que OUTPUT dans d'autres systèmes. Choisissez la méthode appropriée en fonction de votre système de base de données spécifique.

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