Baza danych H2 - Merge

Polecenie MERGE służy do aktualizacji istniejących wierszy i wstawiania nowych wierszy do tabeli. Kolumna klucza podstawowego odgrywa ważną rolę podczas korzystania z tego polecenia; służy do znalezienia wiersza.

Składnia

Poniżej przedstawiono ogólną składnię polecenia MERGE.

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

W powyższej składni klauzula KEY służy do określenia nazwy kolumny klucza podstawowego. Wraz z klauzulą ​​VALUES, możemy użyć wartości pierwotnych do wstawienia lub możemy pobrać i zapisać inne wartości tabeli w tej tabeli za pomocą polecenia select.

Przykład

W tym przykładzie spróbujmy dodać nowy rekord do tabeli Klienci. Poniżej znajdują się szczegóły nowego rekordu w tabeli.

Nazwa kolumny Wartość
ID 8
NAZWA Lokesh
WIEK 32
ADRES Hyderabad
WYNAGRODZENIE 2500

Korzystając z następującego zapytania, wstawmy podany rekord do zapytania bazy danych H2.

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

Powyższe zapytanie daje następujące dane wyjściowe.

Update count: 1

Zweryfikujmy rekordy tabeli Customer, wykonując następujące zapytanie.

SELECT * FROM CUSTOMER;

Powyższe zapytanie daje następujące dane wyjściowe.

ID Nazwa Wiek Adres Wynagrodzenie
1 Ramesh 32 Ahmedabad 2000
2 Khilan 25 Delhi 1500
3 Kaushik 23 Kota 2000
4 Chaitali 25 Bombaj 6500
5 Hardik 27 Bhopal 8500
6 Komal 22 poseł 4500
7 Muffy 24 Indore 10000
8 Lokesh 32 Hyderabad 2500

Teraz spróbujmy zaktualizować rekord przy użyciu rozszerzenia MergeKomenda. Poniżej znajdują się szczegóły rekordu, który ma zostać zaktualizowany.

Nazwa kolumny Wartość
ID 8
NAZWA Loki
WIEK 32
ADRES Hyderabad
WYNAGRODZENIE 3000

Użyj następującego zapytania, aby wstawić dany rekord do zapytania bazy danych H2.

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

Powyższe zapytanie daje następujące dane wyjściowe.

Update count: 1

Zweryfikujmy rekordy tabeli Customer, wykonując następujące zapytanie.

SELECT * FROM CUSTOMER;

Powyższe zapytanie daje następujące dane wyjściowe -

ID Nazwa Wiek Adres Wynagrodzenie
1 Ramesh 32 Ahmedabad 2000
2 Khilan 25 Delhi 1500
3 Kaushik 23 Kota 2000
4 Chaitali 25 Bombaj 6500
5 Hardik 27 Bhopal 8500
6 Komal 22 poseł 4500
7 Muffy 24 Indore 10000
8 Loki 32 Hyderabad 3000