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 |