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
Libérer: 2025-01-17 12:36:11
original
574 Les gens l'ont consulté

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

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

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

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal