ホームページ >データベース >mysql チュートリアル >SQL クエリを使用して Microsoft Access で Upsert 操作をシミュレートするにはどうすればよいですか?

SQL クエリを使用して Microsoft Access で Upsert 操作をシミュレートするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-19 20:01:15650ブラウズ

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

シミュレートされたクエリを使用して Microsoft Access で Upsert 操作を実行します

Microsoft Access では、UPDATE クエリと LEFT JOIN を組み合わせて、アップサート操作 (存在する場合は行を更新、存在しない場合は行を挿入) をシミュレートできます。このアプローチにより、単一のクエリで両方のケースを処理できるようになります。

Upsert 操作を実行するには、次の手順に従います。

  1. UPDATE クエリを作成して、既存の行の列に必要な値を設定します:
<code class="language-sql">UPDATE ... SET <column1> = <value1>, <column2> = <value2>, ... WHERE <key_column> = <key_value></code>
  1. LEFT JOIN を使用して、UPDATE クエリを新しい値を含む一時テーブルまたはサブクエリと結合します。
<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 がターゲット テーブルを表します。 LEFT JOIN は、共通の列 ID に基づいて 2 つのテーブルの一致する行をペアにします。

この結合クエリは、まずテーブル b に一致する id 列を持つテーブル a 内の既存の行を更新しようとします。テーブル 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>

これは、最初に行の更新を試行し、結合が main_table 内の既存の行と一致しない場合は新しい行を挿入することにより、Upsert 動作をエミュレートします。

以上がSQL クエリを使用して Microsoft Access で Upsert 操作をシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。