在 MERGE 中更新

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')   

如果我删除 WHERE FOO."AGE" > 30 那么它似乎没问题。是否无法在 MERGEUPDATE 中指定 WHERE 子句?

我正在使用最新的 apache derby 嵌入式数据库版本,10.12.1.1

你能试试这个吗:

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')