Heim >Datenbank >MySQL-Tutorial >Wie kann ich einen Upsert-Vorgang in Microsoft Access mithilfe von SQL-Abfragen simulieren?
Verwenden Sie eine simulierte Abfrage, um den Upsert-Vorgang in Microsoft Access durchzuführen
In Microsoft Access kann der Upsert-Vorgang (Zeile aktualisieren, falls vorhanden, Zeile einfügen, falls nicht vorhanden) mithilfe der UPDATE-Abfrage in Kombination mit LEFT JOIN simuliert werden. Mit diesem Ansatz können beide Fälle mit einer einzigen Abfrage behandelt werden.
Um einen Upsert-Vorgang durchzuführen, befolgen Sie diese Schritte:
<code class="language-sql">UPDATE ... SET <column1> = <value1>, <column2> = <value2>, ... WHERE <key_column> = <key_value></code>
<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 diesem Beispiel stellt Tabelle b die Quelle der neuen Werte dar und Tabelle a stellt die Zieltabelle dar. LEFT JOIN paart übereinstimmende Zeilen aus zwei Tabellen basierend auf einer gemeinsamen Spalten-ID.
Diese kombinierte Abfrage versucht zunächst, vorhandene Zeilen in Tabelle a zu aktualisieren, deren ID-Spalte mit Tabelle b übereinstimmt. Wenn in Tabelle a keine passende Zeile gefunden wird, wird der neue Wert als neue Zeile eingefügt.
Alternativ können Sie zum leichteren Verständnis auch die folgende Abfrageform verwenden:
<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>
Dies emuliert das Upsert-Verhalten, indem zunächst versucht wird, die Zeile zu aktualisieren und eine neue Zeile einzufügen, wenn der Join mit keiner vorhandenen Zeile in main_table übereinstimmt.
Das obige ist der detaillierte Inhalt vonWie kann ich einen Upsert-Vorgang in Microsoft Access mithilfe von SQL-Abfragen simulieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!