6

从文档中不明白我应该如何使用它。

假设我有一行我希望插入到集合中,如果该行已经存在,则覆盖任何现有值。我没有行主键,但我有唯一键。

谁能告诉我将这样一行插入 HSQLDB 表的 MERGE 语句?

4

1 回答 1

15

HSQLDB 的一个简单示例如下:

CREATE TABLE B(ID INT UNIQUE, A_ID INT);

MERGE INTO B 
  USING (VALUES 2, 3) I (ID, A_ID) 
  ON (B.ID=I.ID)
  WHEN MATCHED THEN UPDATE SET B.A_ID = I.A_ID
  WHEN NOT MATCHED THEN INSERT (ID, A_ID) VALUES (I.ID, I.A_ID)

USING 子句包含新数据。ON 子句是匹配条件。请注意,此处不需要使用主键或唯一约束。任何匹配条件都可以。WHEN MATCHED 和 WHEN NOT MATCHED 子句分别用于 UPDATE 和 INSERT。在这个简单的示例中,引用了来自 USING 子句的数据,但您可以使用任何其他值插入或更新。

于 2013-02-25T20:35:56.377 回答