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>
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>
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!