Maison > base de données > tutoriel mysql > Comment puis-je simuler l'upserting dans Microsoft Access à l'aide de SQL ?

Comment puis-je simuler l'upserting dans Microsoft Access à l'aide de SQL ?

DDD
Libérer: 2025-01-19 20:21:12
original
892 Les gens l'ont consulté

How Can I Simulate Upserting in Microsoft Access Using SQL?

Simuler l'opération Upsert dans Microsoft Access

Normalement, l'insertion et la mise à jour de lignes dans un tableau sont deux processus indépendants. Mais que se passe-t-il si vous souhaitez effectuer les deux opérations en une seule requête ? Cette opération est souvent appelée « Upsert ».

Dans Microsoft Access 2000 et versions ultérieures, vous pouvez utiliser une requête UPDATE avec un LEFT JOIN pour simuler une opération Upsert. La syntaxe est la suivante :

UPDATE b
LEFT JOIN a ON b.id = a.id
SET a.f1 = b.f1, a.f2 = b.f2, a.f3 = b.f3;
Copier après la connexion

Dans cette requête :

  • Le tableau "b" correspond aux nouvelles données que vous souhaitez insérer ou mettre à jour.
  • Table "a" est une table existante sur laquelle vous souhaitez opérer.
  • Une jointure à gauche garantit que toutes les lignes qui n'existent pas dans le tableau "a" sont automatiquement jointes avec des valeurs NULL.

Donc, si une ligne avec l'ID b.id existe dans le tableau "a", cette ligne sera mise à jour avec la valeur du tableau "b". Dans le cas contraire, une nouvelle ligne sera insérée dans le tableau « a ».

Exemple :

Considérez la forme suivante :

<code>| 表 "a" | 表 "b" |
|---|---|
| ID | Field1 | ID | Field1 |
| 1 | ValueA1 | 1 | ValueB1 |
| 2 | ValueA2 | 2 | ValueB2 |
| 3 | ValueA3 | 3 | ValueB3 |
|   |         | 4 | ValueB4 |</code>
Copier après la connexion

L'exécution de la requête UPDATE ci-dessus entraînera la table mise à jour suivante "a" :

<code>| ID | Field1 |
|---|---|
| 1 | ValueB1 |
| 2 | ValueB2 |
| 3 | ValueB3 |
| 4 | ValueB4 |  **(ID = 4 的新行已插入)**</code>
Copier après la connexion

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal