Heim >Datenbank >MySQL-Tutorial >Wie simuliere ich ein Upsert in Microsoft Access mit UPDATE und 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!