База данных H2 - слияние

Команда MERGE используется для обновления существующих строк и вставки новых строк в таблицу. Столбец первичного ключа играет важную роль при использовании этой команды; он используется для поиска строки.

Синтаксис

Ниже приведен общий синтаксис команды MERGE.

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

В приведенном выше синтаксисе предложение KEY используется для указания имени столбца первичного ключа. Наряду с предложением VALUES мы можем использовать примитивные значения для вставки или мы можем извлекать и сохранять другие значения таблицы в этой таблице с помощью команды select.

пример

В этом примере давайте попробуем добавить новую запись в таблицу Customers. Ниже приведены сведения о новой записи в таблице.

Название столбца Значение
Я БЫ 8
ИМЯ Локеш
ВОЗРАСТ 32
АДРЕС Хайдарабад
ЗАРПЛАТА 2500

Используя следующий запрос, давайте вставим данную запись в запрос базы данных H2.

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

Вышеупомянутый запрос дает следующий результат.

Update count: 1

Давайте проверим записи таблицы Customer, выполнив следующий запрос.

SELECT * FROM CUSTOMER;

Вышеупомянутый запрос дает следующий результат.

Я БЫ имя Возраст Адрес Зарплата
1 Рамеш 32 Ахмадабад 2000 г.
2 Хилан 25 Дели 1500
3 Кошик 23 Кота 2000 г.
4 Chaitali 25 Мумбаи 6500
5 Hardik 27 Бхопал 8500
6 Комал 22 Депутат 4500
7 Маффи 24 Индор 10000
8 Локеш 32 Хайдарабад 2500

Теперь попробуем обновить запись с помощью Mergeкоманда. Ниже приведены подробные сведения об обновляемой записи.

Название столбца Значение
Я БЫ 8
ИМЯ Локи
ВОЗРАСТ 32
АДРЕС Хайдарабад
ЗАРПЛАТА 3000

Используйте следующий запрос, чтобы вставить данную запись в запрос базы данных H2.

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

Вышеупомянутый запрос дает следующий результат.

Update count: 1

Давайте проверим записи таблицы Customer, выполнив следующий запрос.

SELECT * FROM CUSTOMER;

Вышеупомянутый запрос дает следующий результат -

Я БЫ имя Возраст Адрес Зарплата
1 Рамеш 32 Ахмадабад 2000 г.
2 Хилан 25 Дели 1500
3 Кошик 23 Кота 2000 г.
4 Chaitali 25 Мумбаи 6500
5 Hardik 27 Бхопал 8500
6 Комал 22 Депутат 4500
7 Маффи 24 Индор 10000
8 Локи 32 Хайдарабад 3000