Database H2 - Unisci

Il comando MERGE viene utilizzato per aggiornare le righe esistenti e inserire nuove righe in una tabella. La colonna della chiave primaria gioca un ruolo importante durante l'utilizzo di questo comando; è usato per trovare la riga.

Sintassi

Di seguito è riportata la sintassi generica del comando MERGE.

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

Nella sintassi precedente, la clausola KEY viene utilizzata per specificare il nome della colonna della chiave primaria. Insieme alla clausola VALUES, possiamo utilizzare valori primitivi da inserire oppure possiamo recuperare e memorizzare altri valori di tabella in questa tabella utilizzando il comando select.

Esempio

In questo esempio, proviamo ad aggiungere un nuovo record nella tabella Clienti. Di seguito sono riportati i dettagli del nuovo record nella tabella.

Nome colonna Valore
ID 8
NOME Lokesh
ETÀ 32
INDIRIZZO Hyderabad
STIPENDIO 2500

Utilizzando la seguente query, inseriamo il record specificato nella query del database H2.

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

La query precedente produce il seguente output.

Update count: 1

Cerchiamo di verificare i record della tabella Customer eseguendo la seguente query.

SELECT * FROM CUSTOMER;

La query precedente produce il seguente output.

ID Nome Età Indirizzo Stipendio
1 Ramesh 32 Ahmedabad 2000
2 Khilan 25 Delhi 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 10000
8 Lokesh 32 Hyderabad 2500

Ora proviamo ad aggiornare il record utilizzando il Mergecomando. Di seguito sono riportati i dettagli del record da aggiornare.

Nome colonna Valore
ID 8
NOME Loki
ETÀ 32
INDIRIZZO Hyderabad
STIPENDIO 3000

Utilizzare la seguente query per inserire il record specificato nella query del database H2.

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

La query precedente produce il seguente output.

Update count: 1

Cerchiamo di verificare i record della tabella Customer eseguendo la seguente query.

SELECT * FROM CUSTOMER;

La query precedente produce il seguente output:

ID Nome Età Indirizzo Stipendio
1 Ramesh 32 Ahmedabad 2000
2 Khilan 25 Delhi 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 10000
8 Loki 32 Hyderabad 3000