Maison > base de données > tutoriel mysql > Comment puis-je simuler une opération Upsert dans Microsoft Access à l'aide de requêtes SQL ?

Comment puis-je simuler une opération Upsert dans Microsoft Access à l'aide de requêtes SQL ?

Patricia Arquette
Libérer: 2025-01-19 20:01:15
original
653 Les gens l'ont consulté

How Can I Simulate an Upsert Operation in Microsoft Access Using SQL Queries?

Utiliser une requête simulée pour effectuer une opération Upsert dans Microsoft Access

Dans Microsoft Access, l'opération Upsert (mettre à jour la ligne si elle existe, insérer la ligne si elle n'existe pas) peut être simulée à l'aide de la requête UPDATE combinée avec LEFT JOIN. Cette approche permet à une seule requête de gérer les deux cas.

Pour effectuer une opération Upsert, suivez ces étapes :

  1. Créez une requête UPDATE pour définir les valeurs souhaitées pour les colonnes des lignes existantes :
<code class="language-sql">UPDATE ... SET <column1> = <value1>, <column2> = <value2>, ... WHERE <key_column> = <key_value></code>
Copier après la connexion
  1. Utilisez LEFT JOIN pour joindre une requête UPDATE avec une table temporaire ou une sous-requête contenant les nouvelles valeurs :
<code class="language-sql">UPDATE b
LEFT JOIN a ON b.id = a.id
SET a.f1 = b.f1, a.f2 = b.f2, a.f3 = b.f3</code>
Copier après la connexion

Dans cet exemple, le tableau b représente la source des nouvelles valeurs et le tableau a représente le tableau cible. LEFT JOIN associe les lignes correspondantes de deux tables en fonction d'un identifiant de colonne commun.

Cette requête combinée tentera d'abord de mettre à jour les lignes existantes du tableau a dont la colonne d'identifiant correspond au tableau b. Si aucune ligne correspondante n'est trouvée dans le tableau a, la nouvelle valeur est insérée en tant que nouvelle ligne.

Vous pouvez également utiliser le formulaire de requête suivant pour une compréhension plus facile :

<code class="language-sql">UPDATE main_table
RIGHT JOIN new_data ON main_table.id = new_data.id
SET
main_table.id = new_data.id,
main_table.col_1 = new_data.col_1,
main_table.col_2 = new_data.col_2</code>
Copier après la connexion

Cela émule le comportement d'Upsert en essayant d'abord de mettre à jour la ligne et en insérant une nouvelle ligne si la jointure ne correspond à aucune ligne existante dans main_table.

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