在MERGE更新

时间:2016-08-01 15:36:15

标签: java sql apache derby javadb

我正在尝试运行以下查询,但我一直在回复:

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,那么它似乎没问题。是否无法在WHERE的{​​{1}}中指定UPDATE条款?

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

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

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