Comment obtenir les lignes exactes affectées par une instruction SQL UPDATE
dans MySQL? J'ai beaucoup de clients sur beaucoup d'ordinateurs qui peuvent mettre à jour des lignes dans la même table basée sur des clauses WHERE
à tout moment, et chaque client doit faire quelque chose dans un autre système pour chaque rangée qu'ils affectent, obtenant ainsi la liste de les objets affectés doivent être précis et ne pas être vulnérables aux conditions de course.sélectionnez les lignes affectées par une mise à jour
Certaines bases de données prennent en charge UPDATE ... OUTPUT UPDATED.id WHERE ...
par exemple. SQL Server. Comment pouvez-vous faire cet atomique UPDATE
/SELECT
dans MySQL?
(j'ai vu des suggestions de faire la SELECT
d'abord, puis en utilisant les ID comme une clause IN
dans le UPDATE
. Mais un autre client peut exécuter le même SELECT
et récupérer les mêmes lignes alors que le premier client est sa queue UPDATE
etc. ?)