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 ?
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!