Mysql
 sql >> Base de données >  >> RDS >> Mysql

Obtenir les clés primaires affectées après la sélection, la mise à jour ou l'insertion uniquement à l'aide de SQL ?

SELECT LAST_INSERT_ID();

Et sérieusement, mettre "la clé primaire de l'insert mysql" dans Google vous donne une réponse Stack Overflow comme premier résultat.

EDIT :plus de discussions basées sur les commentaires.

Si vous voulez voir quelles lignes sont affectées par une mise à jour, faites simplement un SELECT avec la même clause WHERE et les mêmes critères JOIN que l'instruction UPDATE, par exemple :

UPDATE foo SET a = 5 WHERE b > 10;

SELECT id FROM foo WHERE b > 10;

Si vous faites un INSERT dans une table qui n'a pas de clé primaire auto-incrémentée, vous n'avez rien de spécial à faire. Vous savez déjà quelle est la nouvelle clé primaire, car vous l'avez définie vous-même dans l'instruction INSERT. Si vous souhaitez un code capable de gérer les instructions INSERT provenant de l'extérieur du code qui suivra les modifications PK, vous devrez soit analyser l'instruction INSERT, soit demander au code appelant de fournir des informations sur la clé primaire.