Skip to main content

表和列

UPSERT 查詢行為

UPSERT 滑塊設為開啟

按 Id 執行 UPSERT

如果輸入 XML 中存在鍵列,則會向資料庫發出查詢以確定是否存在具有匹配鍵的任何記錄:
匹配結果更新;沒有匹配結果導致插入。 如果輸入 XML 中不存在鍵列,則始終插入記錄:

按非鍵列執行 UPSERT

透過選擇表的主索引鍵,向資料庫發出查詢,以確定是否存在所選 UPSERT By 列包含匹配值的記錄:
SELECT 查詢始終以 SELECT 語句中表的鍵列為目標。如果匹配成功,則輸入 XML 中的資料將更新到資料來源中。如果沒有匹配,則插入記錄。
如果輸入中未指定所選的 UPSERT By 列,則查詢將與 NULL 值一起使用,如以下查詢所示:

使用自定義查詢

還可以編寫自定義查詢來選擇 UPSERT 鍵。此選項允許使用比單列匹配更復雜的邏輯來執行查詢。考慮以下查詢:
在此範例中,必須選擇表的鍵列,以便為 UPDATE 提供足夠的條件。@OrderID 語法用於引用匹配輸入 XML 中的值。還可以使用靜態值:'Active' 周圍的引號表示該子句使用靜態值。 同樣,鍵列的成功匹配用於形成更新請求。如果沒有匹配,則插入記錄。
當對資料庫插入的行為有疑問時,請檢視 UPSERT 嘗試的 .log 檔案:用於指導該行為的邏輯的完整細分將傳送到日誌檔案。

UPSERT 滑塊設為關閉

當滑塊設定為 OFF 時,端口只需將所有查詢插入資料庫即可。檢查輸入對映的程式碼檢視顯示錶的 action 屬性是 insert
無論主索引鍵是否存在,向表發出的所有查詢都被視為插入。要根據表更新所有收到的記錄,可以將此操作關鍵字設定為 update,如以下程式碼片段所示:
當操作定義為 update 時,應用程式期望表的鍵列(例如 Id)存在。如果未提供鍵列,則 UPDATE 命令的效果可能會因目標資料庫型別而異,因此可能會看到更改的行數比預期多,或者根本沒有更改。

範例工作流程程