H2 数据库 - 合并


MERGE 命令用于更新现有行并向表中插入新行。使用此命令时,主键列起着重要作用;它用于查找行。

句法

以下是 MERGE 命令的通用语法。

MERGE INTO tableName [ ( columnName [,...] ) ] 
[ KEY ( columnName [,...] ) ] 
{ VALUES { ( { DEFAULT | expression } [,...] ) } [,...] | select } 

在上面的语法中,KEY 子句用于指定主键列名称。与 VALUES 子句一起,我们可以使用原始值来插入,或者我们可以使用 select 命令检索另一个表值并将其存储到该表中。

例子

在此示例中,让我们尝试向 Customers 表中添加一条新记录。以下是表中新记录的详细信息。

列名称 价值
ID 8
姓名 洛克什
年龄 32
地址 海得拉巴
薪水 2500

使用以下查询,让我们将给定记录插入到 H2 数据库查询中。

MERGE INTO CUSTOMER KEY (ID) VALUES (8, 'Lokesh', 32, 'Hyderabad', 2500);

上述查询产生以下输出。

Update count: 1 

让我们通过执行以下查询来验证 Customer 表的记录。

SELECT * FROM CUSTOMER;

上述查询产生以下输出。

ID 姓名 年龄 地址 薪水
1 拉梅什 32 艾哈迈达巴德 2000年
2 基兰 25 德里 1500
3 考希克 23 科塔 2000年
4 柴塔利 25 孟买 6500
5 哈迪克 27 博帕尔 8500
6 科马尔 22 国会议员 4500
7 莫菲 24 印多尔 10000
8 洛克什 32 海得拉巴 2500

现在让我们尝试使用合并命令更新记录。以下是要更新的记录的详细信息。

列名称 价值
ID 8
姓名 洛基
年龄 32
地址 海得拉巴
薪水 3000

使用以下查询将给定记录插入到 H2 数据库查询中。

MERGE INTO CUSTOMER KEY (ID) VALUES (8, 'Loki', 32, 'Hyderabad', 3000);

上述查询产生以下输出。

Update count: 1 

让我们通过执行以下查询来验证 Customer 表的记录。

SELECT * FROM CUSTOMER; 

上述查询产生以下输出 -

ID 姓名 年龄 地址 薪水
1 拉梅什 32 艾哈迈达巴德 2000年
2 基兰 25 德里 1500
3 考希克 23 科塔 2000年
4 柴塔利 25 孟买 6500
5 哈迪克 27 博帕尔 8500
6 科马尔 22 国会议员 4500
7 莫菲 24 印多尔 10000
8 洛基 32 海得拉巴 3000