在 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
那么它似乎没问题。是否无法在 MERGE
的 UPDATE
中指定 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')
我正在尝试 运行 下面的查询,但我总是返回:
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
那么它似乎没问题。是否无法在 MERGE
的 UPDATE
中指定 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')