H2-database-merge
提供:Dev Guides
H2データベース-マージ
MERGEコマンドを使用して、既存の行を更新し、新しい行をテーブルに挿入します。 主キー列は、このコマンドの使用中に重要な役割を果たします。行を見つけるために使用されます。
構文
以下は、MERGEコマンドの一般的な構文です。
MERGE INTO tableName [ ( columnName [,...] ) ]
[ KEY ( columnName [,...] ) ]
{ VALUES { ( { DEFAULT | expression } [,...] ) } [,...] | select }
上記の構文では、KEY句を使用して主キー列名を指定します。 VALUES句とともに、プリミティブ値を使用して挿入したり、selectコマンドを使用してこのテーブルに別のテーブル値を取得して保存したりできます。
例
この例では、Customersテーブルに新しいレコードを追加してみましょう。 以下は、表の新しいレコードの詳細です。
Column Name | Value |
---|---|
ID | 8 |
NAME | Lokesh |
AGE | 32 |
ADDRESS | Hyderabad |
SALARY | 2500 |
次のクエリを使用して、指定されたレコードをH2データベースクエリに挿入します。
MERGE INTO CUSTOMER KEY (ID) VALUES (8, 'Lokesh', 32, 'Hyderabad', 2500);
上記のクエリは、次の出力を生成します。
Update count: 1
次のクエリを実行して、Customerテーブルのレコードを確認しましょう。
SELECT * FROM CUSTOMER;
上記のクエリは、次の出力を生成します。
ID | Name | Age | Address | Salary |
---|---|---|---|---|
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 |
ここで、 Merge コマンドを使用してレコードを更新してみましょう。 以下は、更新されるレコードの詳細です。
Column Name | Value |
---|---|
ID | 8 |
NAME | Loki |
AGE | 32 |
ADDRESS | Hyderabad |
SALARY | 3000 |
次のクエリを使用して、指定されたレコードをH2データベースクエリに挿入します。
MERGE INTO CUSTOMER KEY (ID) VALUES (8, 'Loki', 32, 'Hyderabad', 3000);
上記のクエリは、次の出力を生成します。
Update count: 1
次のクエリを実行して、Customerテーブルのレコードを確認しましょう。
SELECT * FROM CUSTOMER;
上記のクエリは、次の出力を生成します-
ID | Name | Age | Address | Salary |
---|---|---|---|---|
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 |