Heim >Datenbank >MySQL-Tutorial >Wie simuliere ich ein Upsert in Microsoft Access mit UPDATE und LEFT JOIN?

Wie simuliere ich ein Upsert in Microsoft Access mit UPDATE und LEFT JOIN?

Linda Hamilton
Linda HamiltonOriginal
2025-01-19 20:12:09599Durchsuche

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

Einfügen oder Aktualisieren (Upsert) in Microsoft Access

Frage:

In Microsoft Access 2000 möchten Sie einen Vorgang ausführen, der eine Zeile aktualisiert, wenn sie vorhanden ist, und eine neue Zeile einfügt, wenn sie nicht vorhanden ist.

Lösung:

Verwenden Sie UPDATE und LEFT JOIN, um Upsert zu simulieren

Sie können einen Upsert in Access simulieren, indem Sie eine UPDATE-Abfrage mit einem LEFT JOIN verwenden. Die Abfrage verwendet LEFT JOIN, um zu prüfen, ob eine Zeile vorhanden ist, und aktualisiert oder fügt dann entsprechend ein:

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

In dieser Abfrage steht „b“ für neue Daten und „a“ für eine vorhandene Tabelle. Wenn in „a“ eine übereinstimmende Zeile vorhanden ist, aktualisiert die Abfrage den Wert in „a“ mit dem entsprechenden Wert in „b“. Andernfalls fügt die Abfrage eine neue Zeile in „a“ ein und verwendet dabei den Wert von „b“.

Vereinfachtes Beispiel:

Der Übersichtlichkeit halber finden Sie hier eine vereinfachte Version der Abfrage:

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

Diese Abfrage aktualisiert oder fügt Zeilen in „main_table“ basierend auf den Werten in „new_data“ ein. Die Spalte „id“ ist die Übereinstimmungsbedingung, und die Werte, die aktualisiert oder eingefügt werden, sind „col_1“ und „col_2“.

Das obige ist der detaillierte Inhalt vonWie simuliere ich ein Upsert in Microsoft Access mit UPDATE und LEFT JOIN?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn