Requête MySQL efficace avec "En cas de mise à jour de clé en double identique à l'insertion"
Pour optimiser les requêtes MySQL qui impliquent l'insertion ou la mise à jour d'enregistrements en fonction de données uniques clés, il est important de tirer parti de la clause « Sur la mise à jour des clés en double ». Cette clause vous permet de spécifier les actions qui doivent être effectuées lorsqu'une clé en double est rencontrée lors d'une insertion.
Lors de l'insertion d'un enregistrement avec une clé unique, vous pouvez spécifier la clause « Sur la mise à jour de la clé en double » pour mettre à jour l'existant. champs au cas où la clé existe déjà. Cela élimine le besoin de spécifier à nouveau explicitement toutes les valeurs de champ, offrant ainsi une requête plus concise et efficace. Par exemple, en considérant la requête MySQL donnée :
INSERT INTO table (id, a, b, c, d, e, f, g) VALUES (1, 2, 3, 4, 5, 6, 7, 8)
Si le champ "id" a un index unique, vous pouvez mettre à jour l'enregistrement existant avec la même clé en utilisant :
INSERT INTO table (id, a, b, c, d, e, f, g) VALUES (1, 2, 3, 4, 5, 6, 7, 8) ON DUPLICATE KEY UPDATE a=VALUES(a), b=VALUES(b), c=VALUES(c), d=VALUES(d), e=VALUES(e), f=VALUES(f), g=VALUES(g)
Dans ce cas, la clause « On Duplicate Key Update » met à jour les champs « a » à « g » avec leurs valeurs respectives dans la clause insert. Cela simplifie la requête en évitant d'avoir à répéter explicitement toutes les valeurs de champ.
Cependant, il convient de noter que si les valeurs existantes dans le tableau correspondent aux valeurs insérées, l'action de mise à jour ne sera pas effectuée. En effet, il n'est pas nécessaire de mettre à jour les champs s'ils contiennent déjà les valeurs souhaitées.
Pour récupérer l'ID de l'enregistrement inséré ou mis à jour, vous pouvez utiliser la fonction "LAST_INSERT_ID()". La syntaxe spécifique pour accéder à cette fonction varie en fonction de l'application backend utilisée. Par exemple, dans LuaSQL, vous pouvez utiliser « conn:getlastautoid() » pour récupérer le dernier ID généré automatiquement.
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!