Skip to content

Commit ba9868f

Browse files
๐Ÿ’ฌGenerate LLM translations (#2256)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent 015e192 commit ba9868f

File tree

1 file changed

+84
-29
lines changed

1 file changed

+84
-29
lines changed

โ€Ždocs/cn/sql-reference/10-sql-commands/10-dml/dml-merge.mdโ€Ž

Lines changed: 84 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,23 @@ title: MERGE
44

55
import FunctionDescription from '@site/src/components/FunctionDescription';
66

7-
<FunctionDescription description="Introduced or updated: v1.2.241"/>
7+
<FunctionDescription description="ๅผ•ๅ…ฅๆˆ–ๆ›ดๆ–ฐไบŽ: v1.2.241"/>
88

9-
ๆ นๆฎ่ฏญๅฅไธญๆŒ‡ๅฎš็š„ๆกไปถๅ’ŒๅŒน้…ๆ ‡ๅ‡†๏ผŒไฝฟ็”จๆŒ‡ๅฎšๆบไธญ็š„ๆ•ฐๆฎๅฏน็›ฎๆ ‡่กจไธญ็š„่กŒๆ‰ง่กŒ INSERTใ€UPDATE ๆˆ– DELETE ๆ“ไฝœใ€‚
9+
ๅœจ็›ฎๆ ‡่กจไธญๆ‰ง่กŒ **INSERT**ใ€**UPDATE** ๆˆ– **DELETE** ๆ“ไฝœ๏ผŒๆ‰€ๆœ‰ๆ“ไฝœ้ƒฝๆ นๆฎ่ฏญๅฅไธญๆŒ‡ๅฎš็š„ๆกไปถๅ’ŒๅŒน้…ๆกไปถ่ฟ›่กŒ๏ผŒไฝฟ็”จๆฅ่‡ชๆŒ‡ๅฎšๆบ็š„ๆ•ฐๆฎใ€‚
1010

11-
ๆ•ฐๆฎๆบ๏ผˆๅฏไปฅๆ˜ฏๅญๆŸฅ่ฏข๏ผ‰้€š่ฟ‡ JOIN ่กจ่พพๅผ้“พๆŽฅๅˆฐ็›ฎๆ ‡ๆ•ฐๆฎใ€‚ๆญค่กจ่พพๅผ่ฏ„ไผฐๆบไธญ็š„ๆฏไธ€่กŒๆ˜ฏๅฆๅฏไปฅๅœจ็›ฎๆ ‡่กจไธญๆ‰พๅˆฐๅŒน้…้กน๏ผŒ็„ถๅŽ็กฎๅฎšๅฎƒๅบ”่ฏฅ็งปๅŠจๅˆฐไธ‹ไธ€ไธชๆ‰ง่กŒๆญฅ้ชคไธญ็š„ๅ“ช็ง็ฑปๅž‹็š„ๅญๅฅ๏ผˆMATCHED ๆˆ– NOT MATCHED๏ผ‰ใ€‚
11+
ๆ•ฐๆฎๆบ (ๅฏไปฅๆ˜ฏๅญๆŸฅ่ฏข) ้€š่ฟ‡ JOIN ่กจ่พพๅผไธŽ็›ฎๆ ‡ๆ•ฐๆฎๅ…ณ่”ใ€‚ๆญค่กจ่พพๅผ่ฏ„ไผฐๆบไธญ็š„ๆฏไธ€่กŒๆ˜ฏๅฆ่ƒฝๅœจ็›ฎๆ ‡่กจไธญๆ‰พๅˆฐๅŒน้…้กน๏ผŒ็„ถๅŽ็กฎๅฎšๅœจไธ‹ไธ€ไธชๆ‰ง่กŒๆญฅ้ชคไธญๅบ”่ฏฅ็งปๅŠจๅˆฐๅ“ช็ง็ฑปๅž‹็š„ๅญๅฅ (MATCHED ๆˆ– NOT MATCHED)ใ€‚
1212

1313
![Alt text](/img/sql/merge-into-single-clause.jpeg)
1414

15-
MERGE ่ฏญๅฅ้€šๅธธๅŒ…ๅซ MATCHED ๅ’Œ/ๆˆ– NOT MATCHED ๅญๅฅ๏ผŒๆŒ‡็คบ Databend ๅฆ‚ไฝ•ๅค„็†ๅŒน้…ๅ’ŒไธๅŒน้…็š„ๆƒ…ๅ†ตใ€‚ๅฏนไบŽ MATCHED ๅญๅฅ๏ผŒๆ‚จๅฏไปฅ้€‰ๆ‹ฉๅฏน็›ฎๆ ‡่กจๆ‰ง่กŒ UPDATE ๆˆ– DELETE ๆ“ไฝœใ€‚็›ธๅ๏ผŒๅฏนไบŽ NOT MATCHED ๅญๅฅ๏ผŒๅฏ็”จ็š„้€‰ๆ‹ฉๆ˜ฏ INSERTใ€‚
15+
MERGE ่ฏญๅฅ้€šๅธธๅŒ…ๅซ MATCHED ๅ’Œ/ๆˆ– NOT MATCHED ๅญๅฅ๏ผŒๆŒ‡็คบ Databend ๅฆ‚ไฝ•ๅค„็†ๅŒน้…ๅ’ŒไธๅŒน้…็š„ๅœบๆ™ฏใ€‚ๅฏนไบŽ MATCHED ๅญๅฅ๏ผŒๆ‚จๅฏไปฅ้€‰ๆ‹ฉๅœจ็›ฎๆ ‡่กจไธŠๆ‰ง่กŒ **UPDATE** ๆˆ– **DELETE** ๆ“ไฝœใ€‚็›ธๅ๏ผŒๅฏนไบŽ NOT MATCHED ๅญๅฅ๏ผŒๅฏ็”จ็š„้€‰ๆ‹ฉๆ˜ฏ **INSERT**ใ€‚
1616

1717
## ๅคšไธช MATCHED ๅ’Œ NOT MATCHED ๅญๅฅ
1818

19-
MERGE ่ฏญๅฅๅฏไปฅๅŒ…ๅซๅคšไธช MATCHED ๅ’Œ/ๆˆ– NOT MATCHED ๅญๅฅ๏ผŒไฝฟๆ‚จๅฏไปฅ็ตๆดปๅœฐๆ นๆฎ MERGE ๆ“ไฝœๆœŸ้—ดๆปก่ถณ็š„ๆกไปถๆŒ‡ๅฎš่ฆๆ‰ง่กŒ็š„ไธๅŒๆ“ไฝœใ€‚
19+
MERGE ่ฏญๅฅๅฏไปฅๅŒ…ๅซๅคšไธช MATCHED ๅ’Œ/ๆˆ– NOT MATCHED ๅญๅฅ๏ผŒไธบๆ‚จๆไพ›็ตๆดปๆ€ง๏ผŒๅฏไปฅๆ นๆฎ MERGE ๆ“ไฝœๆœŸ้—ดๆปก่ถณ็š„ๆกไปถๆŒ‡ๅฎš่ฆๆ‰ง่กŒ็š„ไธๅŒๆ“ไฝœใ€‚
2020

2121
![Alt text](/img/sql/merge-into-multi-clause.jpeg)
2222

23-
ๅฆ‚ๆžœ MERGE ่ฏญๅฅๅŒ…ๅซๅคšไธช MATCHED ๅญๅฅ๏ผŒๅˆ™้œ€่ฆไธบ้™คๆœ€ๅŽไธ€ไธชๅญๅฅไน‹ๅค–็š„ๆฏไธชๅญๅฅๆŒ‡ๅฎšไธ€ไธชๆกไปถใ€‚่ฟ™ไบ›ๆกไปถ็กฎๅฎšๆ‰ง่กŒ็›ธๅ…ณๆ“ไฝœ็š„ๆ ‡ๅ‡†ใ€‚Databend ๆŒ‰็…งๆŒ‡ๅฎš็š„้กบๅบ่ฏ„ไผฐๆกไปถใ€‚ไธ€ๆ—ฆๆปก่ถณๆกไปถ๏ผŒๅฎƒๅฐ†่งฆๅ‘ๆŒ‡ๅฎš็š„ๆ“ไฝœ๏ผŒ่ทณ่ฟ‡ไปปไฝ•ๅ‰ฉไฝ™็š„ MATCHED ๅญๅฅ๏ผŒ็„ถๅŽ็งปๅŠจๅˆฐๆบไธญ็š„ไธ‹ไธ€่กŒใ€‚ๅฆ‚ๆžœ MERGE ่ฏญๅฅ่ฟ˜ๅŒ…ๅซๅคšไธช NOT MATCHED ๅญๅฅ๏ผŒๅˆ™ Databend ไปฅ็ฑปไผผ็š„ๆ–นๅผๅค„็†ๅฎƒไปฌใ€‚
23+
ๅฆ‚ๆžœ MERGE ่ฏญๅฅๅŒ…ๅซๅคšไธช MATCHED ๅญๅฅ๏ผŒ้™คไบ†ๆœ€ๅŽไธ€ไธชๅญๅฅๅค–๏ผŒๆฏไธชๅญๅฅ้ƒฝ้œ€่ฆๆŒ‡ๅฎšไธ€ไธชๆกไปถใ€‚่ฟ™ไบ›ๆกไปถ็กฎๅฎšๆ‰ง่กŒ็›ธๅ…ณๆ“ไฝœ็š„ๆ ‡ๅ‡†ใ€‚Databend ๆŒ‰ๆŒ‡ๅฎš้กบๅบ่ฏ„ไผฐๆกไปถใ€‚ไธ€ๆ—ฆๆปก่ถณๆกไปถ๏ผŒๅฎƒๅฐฑไผš่งฆๅ‘ๆŒ‡ๅฎš็š„ๆ“ไฝœ๏ผŒ่ทณ่ฟ‡ไปปไฝ•ๅ‰ฉไฝ™็š„ MATCHED ๅญๅฅ๏ผŒ็„ถๅŽ็งปๅŠจๅˆฐๆบไธญ็š„ไธ‹ไธ€่กŒใ€‚ๅฆ‚ๆžœ MERGE ่ฏญๅฅ่ฟ˜ๅŒ…ๅซๅคšไธช NOT MATCHED ๅญๅฅ๏ผŒDatabend ไผšไปฅ็ฑปไผผ็š„ๆ–นๅผๅค„็†ๅฎƒไปฌใ€‚
2424

2525
## ่ฏญๆณ•
2626

@@ -30,43 +30,48 @@ MERGE INTO <target_table>
3030

3131
matchedClause ::=
3232
WHEN MATCHED [ AND <condition> ] THEN
33-
{ UPDATE SET <col_name> = <expr> [ , <col_name2> = <expr2> ... ] | UPDATE * | DELETE }
33+
{
34+
UPDATE SET <col_name> = <expr> [ , <col_name2> = <expr2> ... ] |
35+
UPDATE * |
36+
DELETE /* ไปŽ็›ฎๆ ‡่กจไธญๅˆ ้™คๅŒน้…็š„่กŒ */
37+
}
3438

3539
notMatchedClause ::=
3640
WHEN NOT MATCHED [ AND <condition> ] THEN
3741
{ INSERT ( <col_name> [ , <col_name2> ... ] ) VALUES ( <expr> [ , ... ] ) | INSERT * }
3842
```
3943

40-
| ๅ‚ๆ•ฐ | ๆ่ฟฐ |
44+
| ๅ‚ๆ•ฐ | ๆ่ฟฐ |
4145
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
42-
| UPDATE \* | ไฝฟ็”จๆบไธญ็›ธๅบ”่กŒ็š„ๅ€ผๆ›ดๆ–ฐ็›ฎๆ ‡่กจไธญๅŒน้…่กŒ็š„ๆ‰€ๆœ‰ๅˆ—ใ€‚่ฟ™่ฆๆฑ‚ๆบๅ’Œ็›ฎๆ ‡ไน‹้—ด็š„ๅˆ—ๅไธ€่‡ด๏ผˆๅฐฝ็ฎกๅฎƒไปฌ็š„้กบๅบๅฏ่ƒฝไธๅŒ๏ผ‰๏ผŒๅ› ไธบๅœจๆ›ดๆ–ฐ่ฟ‡็จ‹ไธญ๏ผŒๅŒน้…ๆ˜ฏๅŸบไบŽๅˆ—ๅๅฎŒๆˆ็š„ใ€‚ |
43-
| INSERT \* | ไฝฟ็”จๆบ่กŒ็š„ๅ€ผๅฐ†ๆ–ฐ่กŒๆ’ๅ…ฅๅˆฐ็›ฎๆ ‡่กจไธญใ€‚ |
46+
| UPDATE \* | ไฝฟ็”จๆบไธญ็›ธๅบ”่กŒ็š„ๅ€ผๆ›ดๆ–ฐ็›ฎๆ ‡่กจไธญๅŒน้…่กŒ็š„ๆ‰€ๆœ‰ๅˆ—ใ€‚่ฟ™่ฆๆฑ‚ๆบๅ’Œ็›ฎๆ ‡ไน‹้—ด็š„ๅˆ—ๅไธ€่‡ด (ๅฐฝ็ฎกๅฎƒไปฌ็š„้กบๅบๅฏไปฅไธๅŒ)๏ผŒๅ› ไธบๅœจๆ›ดๆ–ฐ่ฟ‡็จ‹ไธญ๏ผŒๅŒน้…ๆ˜ฏๅŸบไบŽๅˆ—ๅ่ฟ›่กŒ็š„ใ€‚ |
47+
| INSERT \* | ไฝฟ็”จๆบ่กŒ็š„ๅ€ผๅ‘็›ฎๆ ‡่กจๆ’ๅ…ฅๆ–ฐ่กŒใ€‚ |
48+
| DELETE | ไปŽ็›ฎๆ ‡่กจไธญๅˆ ้™คๅŒน้…็š„่กŒใ€‚่ฟ™ๆ˜ฏไธ€ไธชๅผบๅคง็š„ๆ“ไฝœ๏ผŒๅฏ็”จไบŽๆ•ฐๆฎๆธ…็†ใ€ๅˆ ้™ค่ฟ‡ๆ—ถ่ฎฐๅฝ•ๆˆ–ๅŸบไบŽๆบๆ•ฐๆฎๅฎž็Žฐๆกไปถๅˆ ้™ค้€ป่พ‘ใ€‚ |
4449

4550
## ่พ“ๅ‡บ
4651

47-
MERGE ๆไพ›ไบ†ๆ•ฐๆฎๅˆๅนถ็ป“ๆžœ็š„ๆ‘˜่ฆ๏ผŒๅ…ถไธญๅŒ…ๅซไปฅไธ‹ๅˆ—๏ผš
52+
MERGE ๆไพ›ๆ•ฐๆฎๅˆๅนถ็ป“ๆžœ็š„ๆ‘˜่ฆ๏ผŒๅŒ…ๅซไปฅไธ‹ๅˆ—๏ผš
4853

49-
| ๅˆ— | ๆ่ฟฐ |
54+
| ๅˆ— | ๆ่ฟฐ |
5055
| ----------------------- | ---------------------------------------------------- |
51-
| number of rows inserted | ๆทปๅŠ ๅˆฐ็›ฎๆ ‡่กจ็š„ๆ–ฐ่กŒๆ•ฐใ€‚ |
52-
| number of rows updated | ็›ฎๆ ‡่กจไธญไฟฎๆ”น็š„็Žฐๆœ‰่กŒๆ•ฐใ€‚ |
53-
| number of rows deleted | ไปŽ็›ฎๆ ‡่กจไธญๅˆ ้™ค็š„่กŒๆ•ฐใ€‚ |
56+
| number of rows inserted | ๆทปๅŠ ๅˆฐ็›ฎๆ ‡่กจ็š„ๆ–ฐ่กŒๆ•ฐใ€‚ |
57+
| number of rows updated | ็›ฎๆ ‡่กจไธญไฟฎๆ”น็š„็Žฐๆœ‰่กŒๆ•ฐใ€‚ |
58+
| number of rows deleted | ไปŽ็›ฎๆ ‡่กจไธญๅˆ ้™ค็š„่กŒๆ•ฐใ€‚ |
5459

5560
## ็คบไพ‹
5661

57-
### ็คบไพ‹ 1๏ผšๅˆๅนถๅ…ทๆœ‰ๅคšไธชๅŒน้…ๅญๅฅ
62+
### ็คบไพ‹ 1: ไฝฟ็”จๅคšไธช Matched ๅญๅฅ่ฟ›่กŒๅˆๅนถ
5863

59-
ๆญค็คบไพ‹ไฝฟ็”จ MERGE ๅฐ†ๅ‘˜ๅทฅๆ•ฐๆฎไปŽโ€œemployeesโ€ๅŒๆญฅๅˆฐโ€œsalariesโ€๏ผŒไปŽ่€Œๅฏไปฅๆ นๆฎๆŒ‡ๅฎš็š„ๆ ‡ๅ‡†ๆ’ๅ…ฅๅ’Œๆ›ดๆ–ฐๅทฅ่ต„ไฟกๆฏใ€‚
64+
ๆญค็คบไพ‹ไฝฟ็”จ MERGE ๅฐ†ๅ‘˜ๅทฅๆ•ฐๆฎไปŽ 'employees' ๅŒๆญฅๅˆฐ 'salaries'๏ผŒๅ…่ฎธๆ นๆฎๆŒ‡ๅฎšๆกไปถๆ’ๅ…ฅๅ’Œๆ›ดๆ–ฐ่–ช่ต„ไฟกๆฏใ€‚
6065

6166
```sql
62-
-- ๅˆ›ๅปบโ€œemployeesโ€่กจไฝœไธบๅˆๅนถ็š„ๆบ
67+
-- ๅˆ›ๅปบ 'employees' ่กจไฝœไธบๅˆๅนถ็š„ๆบ
6368
CREATE TABLE employees (
6469
employee_id INT,
6570
employee_name VARCHAR(255),
6671
department VARCHAR(255)
6772
);
6873

69-
-- ๅˆ›ๅปบโ€œsalariesโ€่กจไฝœไธบๅˆๅนถ็š„็›ฎๆ ‡
74+
-- ๅˆ›ๅปบ 'salaries' ่กจไฝœไธบๅˆๅนถ็š„็›ฎๆ ‡
7075
CREATE TABLE salaries (
7176
employee_id INT,
7277
salary DECIMAL(10, 2)
@@ -79,14 +84,15 @@ INSERT INTO employees VALUES
7984
(3, 'Charlie', 'Finance'),
8085
(4, 'David', 'HR');
8186

82-
-- ๆ’ๅ…ฅๅˆๅง‹ๅทฅ่ต„ๆ•ฐๆฎ
87+
-- ๆ’ๅ…ฅๅˆๅง‹่–ช่ต„ๆ•ฐๆฎ
8388
INSERT INTO salaries VALUES
8489
(1, 50000.00),
8590
(2, 60000.00);
8691

8792
-- ๅฏ็”จ MERGE INTO
8893

89-
-- ๆ นๆฎโ€œemployeesโ€ไธญ็š„ๅ‘˜ๅทฅ่ฏฆ็ป†ไฟกๆฏๅฐ†ๆ•ฐๆฎๅˆๅนถๅˆฐโ€œsalariesโ€ไธญ
94+
```sql
95+
-- ๅŸบไบŽ 'employees' ่กจไธญ็š„ๅ‘˜ๅทฅ่ฏฆ็ป†ไฟกๆฏๅฐ†ๆ•ฐๆฎๅˆๅนถๅˆฐ 'salaries' ่กจไธญ
9096
MERGE INTO salaries
9197
USING (SELECT * FROM employees) AS employees
9298
ON salaries.employee_id = employees.employee_id
@@ -106,7 +112,7 @@ MERGE INTO salaries
106112
โ”‚ 2 โ”‚ 2 โ”‚
107113
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
108114
109-
-- ๅˆๅนถๅŽไปŽโ€œsalariesโ€่กจไธญๆฃ€็ดขๆ‰€ๆœ‰่ฎฐๅฝ•
115+
-- ๅˆๅนถๅŽไปŽ 'salaries' ่กจไธญๆฃ€็ดขๆ‰€ๆœ‰่ฎฐๅฝ•
110116
SELECT * FROM salaries;
111117
112118
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
@@ -119,9 +125,9 @@ SELECT * FROM salaries;
119125
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
120126
```
121127

122-
### ็คบไพ‹ 2๏ผšๅˆๅนถๅ…ทๆœ‰ UPDATE \* ๅ’Œ INSERT \*
128+
### ็คบไพ‹ 2: ไฝฟ็”จ UPDATE * ๅ’Œ INSERT * ่ฟ›่กŒๅˆๅนถ
123129

124-
ๆญค็คบไพ‹ไฝฟ็”จ MERGE ๅœจ target_table ๅ’Œ source_table ไน‹้—ดๅŒๆญฅๆ•ฐๆฎ๏ผŒไฝฟ็”จๆบไธญ็š„ๅ€ผๆ›ดๆ–ฐๅŒน้…็š„่กŒ๏ผŒๅนถๆ’ๅ…ฅไธๅŒน้…็š„่กŒใ€‚
130+
ๆญค็คบไพ‹ไฝฟ็”จ MERGE ๅœจ target_table ๅ’Œ source_table ไน‹้—ดๅŒๆญฅๆ•ฐๆฎ๏ผŒไฝฟ็”จๆบ่กจไธญ็š„ๅ€ผๆ›ดๆ–ฐๅŒน้…็š„่กŒ๏ผŒๅนถๆ’ๅ…ฅไธๅŒน้…็š„่กŒใ€‚
125131

126132
```sql
127133
-- ๅˆ›ๅปบ็›ฎๆ ‡่กจ target_table
@@ -132,7 +138,7 @@ CREATE TABLE target_table (
132138
City VARCHAR(50)
133139
);
134140
135-
-- ๅฐ†ๅˆๅง‹ๆ•ฐๆฎๆ’ๅ…ฅๅˆฐ target_table ไธญ
141+
-- ๅ‘ target_table ๆ’ๅ…ฅๅˆๅง‹ๆ•ฐๆฎ
136142
INSERT INTO target_table (ID, Name, Age, City)
137143
VALUES
138144
(1, 'Alice', 25, 'Toronto'),
@@ -147,16 +153,16 @@ CREATE TABLE source_table (
147153
City VARCHAR(50)
148154
);
149155
150-
-- ๅฐ†ๅˆๅง‹ๆ•ฐๆฎๆ’ๅ…ฅๅˆฐ source_table ไธญ
156+
-- ๅ‘ source_table ๆ’ๅ…ฅๅˆๅง‹ๆ•ฐๆฎ
151157
INSERT INTO source_table (ID, Name, Age, City)
152158
VALUES
153159
(1, 'David', 27, 'Calgary'),
154160
(2, 'Emma', 29, 'Ottawa'),
155161
(4, 'Frank', 32, 'Edmonton');
156162
157-
-- ๅฏ็”จ MERGE INTO
163+
-- Enable MERGE INTO
158164
159-
-- ๅฐ†ๆ•ฐๆฎไปŽ source_table ๅˆๅนถๅˆฐ target_table ไธญ
165+
-- ๅฐ† source_table ไธญ็š„ๆ•ฐๆฎๅˆๅนถๅˆฐ target_table ไธญ
160166
MERGE INTO target_table AS T
161167
USING (SELECT * FROM source_table) AS S
162168
ON T.ID = S.ID
@@ -171,7 +177,7 @@ MERGE INTO target_table AS T
171177
โ”‚ 1 โ”‚ 2 โ”‚
172178
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
173179
174-
-- ๅˆๅนถๅŽไปŽโ€œtarget_tableโ€ไธญๆฃ€็ดขๆ‰€ๆœ‰่ฎฐๅฝ•
180+
-- ๅˆๅนถๅŽไปŽ 'target_table' ไธญๆฃ€็ดขๆ‰€ๆœ‰่ฎฐๅฝ•
175181
SELECT * FROM target_table order by ID;
176182
177183
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
@@ -182,4 +188,53 @@ SELECT * FROM target_table order by ID;
182188
โ”‚ 3 โ”‚ Carol โ”‚ 28 โ”‚ Montreal โ”‚
183189
โ”‚ 4 โ”‚ Frank โ”‚ 32 โ”‚ Edmonton โ”‚
184190
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
191+
```
192+
193+
### ็คบไพ‹ 3: ไฝฟ็”จ DELETE ๆ“ไฝœ่ฟ›่กŒๅˆๅนถ
194+
195+
ๆญค็คบไพ‹ๆผ”็คบๅฆ‚ไฝ•ไฝฟ็”จ MERGE ๆ นๆฎๆบ่กจไธญ็š„็‰นๅฎšๆกไปถไปŽ็›ฎๆ ‡่กจไธญๅˆ ้™ค่ฎฐๅฝ•ใ€‚
196+
197+
```sql
198+
-- ๅˆ›ๅปบ customers ่กจ (็›ฎๆ ‡่กจ)
199+
CREATE TABLE customers (
200+
customer_id INT,
201+
customer_name VARCHAR(50),
202+
status VARCHAR(20),
203+
last_purchase_date DATE
204+
);
205+
206+
-- ๆ’ๅ…ฅๅˆๅง‹ๅฎขๆˆทๆ•ฐๆฎ
207+
INSERT INTO customers VALUES
208+
(101, 'John Smith', 'Active', '2023-01-15'),
209+
(102, 'Emma Johnson', 'Active', '2023-02-20'),
210+
(103, 'Michael Brown', 'Inactive', '2022-11-05'),
211+
(104, 'Sarah Wilson', 'Active', '2023-03-10'),
212+
(105, 'David Lee', 'Inactive', '2022-09-30');
213+
214+
-- ๅˆ›ๅปบ removals ่กจ (ๅŒ…ๅซ่ฆๅˆ ้™คๅฎขๆˆท็š„ๆบ่กจ)
215+
CREATE TABLE removals (
216+
customer_id INT,
217+
removal_reason VARCHAR(50),
218+
removal_date DATE
219+
);
220+
221+
-- ไธบ่ฆๅˆ ้™ค็š„ๅฎขๆˆทๆ’ๅ…ฅๆ•ฐๆฎ
222+
INSERT INTO removals VALUES
223+
(103, 'Account Closed', '2023-04-01'),
224+
(105, 'Customer Request', '2023-04-05');
225+
226+
-- Enable MERGE INTO
227+
228+
-- ไฝฟ็”จ MERGE ๅˆ ้™คๅ‡บ็Žฐๅœจ removals ่กจไธญ็š„้žๆดป่ทƒๅฎขๆˆท
229+
MERGE INTO customers AS c
230+
USING removals AS r
231+
ON c.customer_id = r.customer_id
232+
WHEN MATCHED AND c.status = 'Inactive' THEN
233+
DELETE;
234+
235+
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
236+
โ”‚ number of rows deleted โ”‚
237+
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
238+
โ”‚ 2 โ”‚
239+
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
185240
```

0 commit comments

Comments
ย (0)