Reputation: 1300
If table is empty or the using select doesn't return any row, why this merge doesn't run the insert statement?
MERGE INTO
`table` TGT
USING
(
SELECT
field
FROM
`table`
WHERE
field='1'
) SOURCE
ON
(TGT.field = SOURCE.field )
WHEN MATCHED THEN
UPDATE SET TGT.field='value1'
WHEN NOT MATCHED THEN
INSERT (field) VALUES ( 'value2')
Upvotes: 1
Views: 5821
Reputation: 1300
MERGE INTO
`table` DESTINY
USING
( select 'value' as Field) SOURCE
ON
DESTINY.Field = SOURCE.Field
WHEN MATCHED THEN UPDATE SET DESTINY.Field='value 1'
WHEN NOT MATCHED THEN INSERT (Field) VALUES ( 'value 2')
Upvotes: 3