-
-
Notifications
You must be signed in to change notification settings - Fork 45
Open
Description
Describe the feature
Merge (upsert) queries currently require all of the columns in clause.Conflict.Columns
to be primary keys, otherwise it silently falls back to a regular insert.
A table can have a primary key thats simply an auto-increment referencing the row, but also unique constraints which can trigger the ON CONFLICT
case of a merge query.
Motivation
Upsert queries that aren't necessarily looking at the primary key.
MERGE table1 AS [Target] USING (
SELECT
uniq_field1 = ?,
uniq_field2 = ?,
value = ?)
AS [Source] ON [Target].uniq_field1 = [Source].uniq_field1 and [Target].uniq_field2 = [Source].uniq_field2
WHEN MATCHED THEN
UPDATE
SET
[Target].value=[Source].value,
WHEN NOT MATCHED THEN
INSERT (
uniq_field1,
uniq_field2,
value)
VALUES
(
[Source].uniq_field1,
[Source].uniq_field2,
[Source].value
)
Related Issues
None.
jhajjaarap
Metadata
Metadata
Assignees
Labels
No labels