Banco de dados H2 - Mesclar

O comando MERGE é usado para atualizar as linhas existentes e inserir novas linhas em uma tabela. A coluna da chave primária desempenha um papel importante ao usar este comando; é usado para encontrar a linha.

Sintaxe

A seguir está a sintaxe genérica do comando MERGE.

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

Na sintaxe acima, a cláusula KEY é usada para especificar o nome da coluna da chave primária. Junto com a cláusula VALUES, podemos usar valores primitivos para inserir ou podemos recuperar e armazenar outros valores de tabela nesta tabela usando o comando select.

Exemplo

Neste exemplo, vamos tentar adicionar um novo registro à tabela Clientes. A seguir estão os detalhes do novo registro na tabela.

Nome da coluna Valor
EU IRIA 8
NOME Lokesh
ERA 32
ENDEREÇO Hyderabad
SALÁRIO 2500

Usando a consulta a seguir, vamos inserir o registro fornecido na consulta de banco de dados H2.

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

A consulta acima produz a seguinte saída.

Update count: 1

Vamos verificar os registros da tabela Cliente executando a seguinte consulta.

SELECT * FROM CUSTOMER;

A consulta acima produz a seguinte saída.

EU IRIA Nome Era Endereço Salário
1 Ramesh 32 Ahmedabad 2000
2 Khilan 25 Délhi 1500
3 Kaushik 23 Kota 2000
4 Chaitali 25 Mumbai 6500
5 Hardik 27 Bhopal 8500
6 Komal 22 MP 4500
7 Muffy 24 Indore 10.000
8 Lokesh 32 Hyderabad 2500

Agora vamos tentar atualizar o registro usando o Mergecomando. A seguir estão os detalhes do registro a ser atualizado.

Nome da coluna Valor
EU IRIA 8
NOME Loki
ERA 32
ENDEREÇO Hyderabad
SALÁRIO 3000

Use a seguinte consulta para inserir o registro fornecido na consulta de banco de dados H2.

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

A consulta acima produz a seguinte saída.

Update count: 1

Vamos verificar os registros da tabela Cliente executando a seguinte consulta.

SELECT * FROM CUSTOMER;

A consulta acima produz a seguinte saída -

EU IRIA Nome Era Endereço Salário
1 Ramesh 32 Ahmedabad 2000
2 Khilan 25 Délhi 1500
3 Kaushik 23 Kota 2000
4 Chaitali 25 Mumbai 6500
5 Hardik 27 Bhopal 8500
6 Komal 22 MP 4500
7 Muffy 24 Indore 10.000
8 Loki 32 Hyderabad 3000