HSQLDB 合并 WHEN MATCHED AND 失败
HSQLDB merge WHEN MATCHED AND fails
我有以下表格:
create table WorkPendingSummary
(
WorkPendingID int not null,
WorkPendingDate date not null,
Status varchar(20) not null,
EndDate date null
)
create table WorkPendingSummaryStage
(
WorkPendingID int not null,
WorkPendingDate date not null,
Status varchar(20) not null
)
然后我有以下合并语句:
MERGE INTO WorkPendingSummary w USING WorkPendingSummaryStage
AS vals(WorkPendingID, WorkPendingDate, Status)
ON w.WorkPendingID = vals.WorkPendingID
WHEN MATCHED AND vals.status = 'CLOSED'
THEN UPDATE SET w.workpendingdate = vals.workpendingdate, w.status = vals.status, w.enddate = current_time
http://hsqldb.org/doc/guide/dataaccess-chapt.html#dac_merge_statement 处的文档指出 "WHEN MATCHED" 语句可以有一个额外的 "AND" 子句,就像我在上面所做的那样,但是失败了:
unexpected token: AND required: THEN : line: 4 [SQL State=42581, DB Errorcode=-5581]
这个功能有用吗?还是我错过了什么?
使用 HSQLDB 2.3.1.
谢谢!
该文档适用于版本 2.3.3 和即将发布的 2.3.4。这些最新版本支持 AND 子句。
我有以下表格:
create table WorkPendingSummary
(
WorkPendingID int not null,
WorkPendingDate date not null,
Status varchar(20) not null,
EndDate date null
)
create table WorkPendingSummaryStage
(
WorkPendingID int not null,
WorkPendingDate date not null,
Status varchar(20) not null
)
然后我有以下合并语句:
MERGE INTO WorkPendingSummary w USING WorkPendingSummaryStage
AS vals(WorkPendingID, WorkPendingDate, Status)
ON w.WorkPendingID = vals.WorkPendingID
WHEN MATCHED AND vals.status = 'CLOSED'
THEN UPDATE SET w.workpendingdate = vals.workpendingdate, w.status = vals.status, w.enddate = current_time
http://hsqldb.org/doc/guide/dataaccess-chapt.html#dac_merge_statement 处的文档指出 "WHEN MATCHED" 语句可以有一个额外的 "AND" 子句,就像我在上面所做的那样,但是失败了:
unexpected token: AND required: THEN : line: 4 [SQL State=42581, DB Errorcode=-5581]
这个功能有用吗?还是我错过了什么?
使用 HSQLDB 2.3.1.
谢谢!
该文档适用于版本 2.3.3 和即将发布的 2.3.4。这些最新版本支持 AND 子句。