2016-08-01 9 views
0

Ich versuche, die unter Abfrage laufen, aber ich bekomme immer wieder zurück:UPDATE WHERE in MERGE

Error code 30000, SQL state 42X01: Syntax error: Encountered "WHERE" at line 5, column 38. 

MERGE INTO FOO 
USING BAR 
ON FOO."NAME" = BAR."NAME" 
WHEN MATCHED THEN 
    UPDATE SET FOO."NAME" = 'qwerty' WHERE FOO."AGE" > 30 
WHEN NOT MATCHED THEN 
    INSERT (guid) values('qwerty') 

Wenn ich entferne WHERE FOO."AGE" > 30 dann scheint es jedoch in Ordnung zu sein. Ist es nicht möglich, eine WHERE-Klausel in der UPDATE einer MERGE anzugeben?

ich die neueste Apache Derby Embedded-Datenbank-Version verwenden, 10.12.1.1

+0

yep, scheint wie [mergeUpdate] (https://db.apache.org/ derby/docs/10.12/ref/rrefsqljmerge.html #reffsqljmerge__mergeupdate) lässt die WHERE-Klausel einfach nicht zu. Aber Phritzys Antwort unten sollte genügen. –

Antwort

0

Können Sie versuchen, dieses:

MERGE INTO FOO 
USING BAR 
ON FOO."NAME" = BAR."NAME" 
AND FOO."AGE" > 30 
WHEN MATCHED THEN 
    UPDATE SET FOO."NAME" = 'qwerty' 
WHEN NOT MATCHED THEN 
    INSERT (guid) values('qwerty') 
Verwandte Themen