【问题标题】:UPDATE WHERE in MERGE在 MERGE 中更新
【发布时间】:2016-08-01 15:36:14
【问题描述】:

我正在尝试运行以下查询,但我不断返回:

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

【问题讨论】:

  • 是的,似乎mergeUpdate 根本不允许 WHERE 子句。但是Phritzy下面的回答应该可以。

标签: java sql derby javadb


【解决方案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')   

【讨论】:

    猜你喜欢
    • 2021-04-29
    • 1970-01-01
    • 2019-03-30
    • 2013-01-26
    • 2021-01-06
    • 1970-01-01
    • 2013-06-11
    • 2016-08-16
    • 1970-01-01
    相关资源
    最近更新 更多