MergeUpdate
A boolean indicating whether batch UPDATE statements should be converted to MERGE statements automatically. Only used when the UPDATE statement's where clause contains a table's primary key field only and they are combined with AND logical operator.
Data Type
bool
Default Value
false
Remarks
A boolean indicating whether UPDATE statements should be converted to MERGE statements automatically to allow for upsert functionality. This property is primarily intended for use with tools where you have no direct control over the queries being executed. Otherwise, as long as Query Passthrough is True, you could execute the MERGE command directly.
When this property is False, UPDATE statements are executed
directly against the server. When it is set to True and the
UPDATE query contains the primary key field, the Snowflake
will send a MERGE query that will execute an INSERT if no
match is found in Snowflake or an UPDATE if it is. For
example this query:
UPDATE "Table" SET "NAME" = 'NewName', "AGE" = 10 WHERE "ID" = 1Will be sent to Snowflake as the following MERGE request:
MERGE INTO "Table" AS "Target" USING "RTABLE1_TMP_20eca05b-c050-47dd-89bc-81c7f617f877" AS "Source" ON ("Target"."ID" = "Source"."ID")
WHEN MATCHED THEN UPDATE SET "Target"."NAME" = "Source"."NAME", "Target"."AGE" = "Source"."AGE"