Microsoft Access 中的插入或更新 (Upsert)
问题:
在 Microsoft Access 2000 中,您希望执行一个操作,如果行存在则更新该行,如果不存在则插入新行。
解决方案:
使用 UPDATE 和 LEFT JOIN 模拟 Upsert
您可以使用带有 LEFT JOIN 的 UPDATE 查询在 Access 中模拟 upsert。查询使用 LEFT JOIN 检查是否存在现有行,然后相应地更新或插入:
<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>
在此查询中,“b”表示新数据,“a”表示现有表。如果“a”中存在匹配行,则查询会使用“b”中的相应值更新“a”中的值。否则,查询会使用“b”中的值将新行插入“a”。
简化示例:
为了清晰起见,以下是查询的简化版本:
<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>
此查询将根据“new_data”中的值更新或插入“main_table”中的行。“id”列是匹配条件,正在更新或插入的值是“col_1”和“col_2”。
以上是如何使用 UPDATE 和 LEFT JOIN 在 Microsoft Access 中模拟更新插入?的详细内容。更多信息请关注PHP中文网其他相关文章!