Maison > base de données > tutoriel mysql > Comment simuler un Upsert dans Microsoft Access à l'aide de UPDATE et LEFT JOIN ?

Comment simuler un Upsert dans Microsoft Access à l'aide de UPDATE et LEFT JOIN ?

Linda Hamilton
Libérer: 2025-01-19 20:12:09
original
596 Les gens l'ont consulté

How to Simulate an Upsert in Microsoft Access Using UPDATE and LEFT JOIN?

Insérer ou mettre à jour (Upsert) dans Microsoft Access

Question :

Dans Microsoft Access 2000, vous souhaitez effectuer une opération qui met à jour une ligne si elle existe et insère une nouvelle ligne si elle n'existe pas.

Solution :

Utilisez UPDATE et LEFT JOIN pour simuler Upsert

Vous pouvez simuler un upsert dans Access en utilisant une requête UPDATE avec un LEFT JOIN. La requête utilise LEFT JOIN pour vérifier s'il existe une ligne existante, puis met à jour ou insère en conséquence :

<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 cette requête, "b" représente de nouvelles données et "a" représente une table existante. S'il existe une ligne correspondante dans « a », la requête met à jour la valeur dans « a » avec la valeur correspondante dans « b ». Sinon, la requête insère une nouvelle ligne dans « a » en utilisant la valeur de « b ».

Exemple simplifié :

Pour plus de clarté, voici une version simplifiée de la requête :

<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

Cette requête mettra à jour ou insérera des lignes dans "main_table" en fonction des valeurs de "new_data". La colonne "id" est la condition de correspondance et les valeurs mises à jour ou insérées sont "col_1" et "col_2".

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