MERGE INTOλ₯Ό μ¬μ©νλ κΈμ°κΈ° λ°©λ²
MERGE INTO λ¬Έμ λ°μ΄ν°κ° μμΌλ©΄ UPDATEλ₯Ό μννκ³ , μμΌλ©΄ INSERTλ₯Ό μννλ SQL ꡬ문μ λλ€. μ΄λ₯Ό ν΅ν΄ λ°μ΄ν°λ² μ΄μ€ ν μ΄λΈμ μ½κ² μ λ°μ΄νΈνκ³ μΆκ°ν μ μμ΅λλ€. λ³Έ κΈμμλ MERGE INTOλ₯Ό μ¬μ©νμ¬ κΈμ μμ±νλ λ°©λ²μ λν΄ μμΈν μ€λͺ νκ² μ΅λλ€.
μ¬μ©λ²
MERGE INTO λ¬Έλ²
- MERGE INTO λ¬Έμ μλμ κ°μ νμμΌλ‘ μμ±λ©λλ€.
MERGE INTO target_table [AS target_alias] USING source_table [AS source_alias] ON <join_condition> WHEN MATCHED THEN <update_statement> WHEN NOT MATCHED THEN <insert_statement>
target_table
: UPDATE λλ INSERTλ₯Ό μνν λμ ν μ΄λΈμ μ΄λ¦μ λλ€.AS target_alias
(Optional): λμ ν μ΄λΈμ λ³μΉ(alias)μ μ§μ ν©λλ€.source_table
: λμ ν μ΄λΈκ³Ό μ‘°μΈν μμ€ ν μ΄λΈμ μ΄λ¦μ λλ€.AS source_alias
(Optional): μμ€ ν μ΄λΈμ λ³μΉ(alias)μ μ§μ ν©λλ€.<join_condition>
: λμ ν μ΄λΈκ³Ό μμ€ ν μ΄λΈμ μ‘°μΈνκΈ° μν 쑰건μ μ§μ ν©λλ€.<update_statement>
: μ‘°μΈλ νμ λν μ λ°μ΄νΈ μμ μ μ μν©λλ€.<insert_statement>
: μ‘°μΈλμ§ μμ μμ€ ν μ΄λΈμ νμ λν μ½μ (insert) μμ μ μ μν©λλ€.
MERGE INTOλ₯Ό μ¬μ©ν κΈμ°κΈ° μμ
- μλμ μμλ₯Ό ν΅ν΄ MERGE INTOλ₯Ό μ¬μ©νμ¬ κΈμ°κΈ°λ₯Ό ν΄λ³΄κ² μ΅λλ€.
MERGE INTO posts AS target USING new_posts AS source ON (target.id = source.id) WHEN MATCHED THEN UPDATE SET target.title = source.title, target.content = source.content WHEN NOT MATCHED THEN INSERT (id, title, content) VALUES (source.id, source.title, source.content)
- μμ μμμμ
posts
ν μ΄λΈμ κΈμ μ 보λ₯Ό λ΄κ³ μλ λμ ν μ΄λΈμ λλ€. new_posts
ν μ΄λΈμ μλ‘ μμ±ν κΈμ μ 보λ₯Ό λ΄κ³ μλ μμ€ ν μ΄λΈμ λλ€.id
λ₯Ό κΈ°μ€μΌλ‘posts
μnew_posts
λ₯Ό μ‘°μΈνλ©°, μ‘°μΈλ κΈμtitle
κ³Όcontent
λ₯Ό μ λ°μ΄νΈνκ³ , μ‘°μΈλμ§ μμ κΈμid
,title
,content
λ₯Ό μ½μ ν©λλ€.
μμ
μλλ MERGE INTOλ₯Ό μ¬μ©νμ¬ μμ±λ κΈμ°κΈ° μμμ λλ€.
MERGE INTO posts AS target
USING new_posts AS source
ON (target.id = source.id)
WHEN MATCHED THEN
UPDATE SET target.title = source.title, target.content = source.content
WHEN NOT MATCHED THEN
INSERT (id, title, content) VALUES (source.id, source.title, source.content)
μ₯λ¨μ
MERGE INTOλ₯Ό μ¬μ©νμ¬ κΈμ°κΈ°λ₯Ό ν λμ μ₯λ¨μ μ λ€μκ³Ό κ°μ΅λλ€:
μ₯μ :
- λ³λμ 쑰건μ νμΈνμ§ μκ³ λ ν μ΄λΈμ μ λ°μ΄νΈνκ±°λ μΆκ°ν μ μμΌλ―λ‘ μμ± μκ°κ³Ό λ Έλ ₯μ μ μ½ν μ μμ΅λλ€.
- ν λ²μ μΏΌλ¦¬λ‘ λμμ μ λ°μ΄νΈμ μΆκ° μμ μ μ²λ¦¬ν μ μμ΅λλ€.
λ¨μ :
- λμ ν μ΄λΈκ³Ό μμ€ ν μ΄λΈμ ꡬ쑰μ μ»¬λΌ μμκ° μΌμΉν΄μΌ ν©λλ€.
- MERGE INTO λ¬Έλ²μ κ°λ¨νμ§ μμΌλ―λ‘, μ²μ μ¬μ©νλ κ²½μ°μλ μ‘°κΈ λ³΅μ‘ν΄ λ³΄μΌ μ μμ΅λλ€.
- λλμ λ°μ΄ν°λ₯Ό μ²λ¦¬ν κ²½μ° μ±λ₯ μ νκ° λ°μν μ μμ΅λλ€.
κ²°λ‘
MERGE INTOλ₯Ό μ¬μ©νμ¬ κΈμ°κΈ°λ₯Ό νλ©΄ λ°μ΄ν°λ² μ΄μ€ μ λ°μ΄νΈμ μΆκ° μμ μ ν¨μ¨μ μΌλ‘ μ²λ¦¬ν μ μμ΅λλ€. λ³Έλ¬Έμμ μ€λͺ ν μ¬μ©λ²μ μ°Έκ³ νμ¬ μ μ ν νμ©ν΄ 보μΈμ. MERGE INTOμ μ₯μ κ³Ό λ¨μ μ κ³ λ €νμ¬ νλ‘μ νΈμ μꡬ μ¬νμ λ§λ λ°©μμ μ ννμλ©΄ λ©λλ€.
MERGE INTOλ₯Ό μ¬μ©νλ κΈμ°κΈ° λ°©λ²
MERGE INTO λ¬Έμ λ°μ΄ν°κ° μμΌλ©΄ UPDATEλ₯Ό μννκ³ , μμΌλ©΄ INSERTλ₯Ό μννλ SQL ꡬ문μ λλ€. μ΄λ₯Ό ν΅ν΄ λ°μ΄ν°λ² μ΄μ€ ν μ΄λΈμ μ½κ² μ λ°μ΄νΈνκ³ μΆκ°ν μ μμ΅λλ€. λ³Έ κΈμμλ MERGE INTOλ₯Ό μ¬μ©νμ¬ κΈμ μμ±νλ λ°©λ²μ λν΄ μμΈν μ€λͺ νκ² μ΅λλ€.
μ¬μ©λ²
MERGE INTO λ¬Έλ²
- MERGE INTO λ¬Έμ μλμ κ°μ νμμΌλ‘ μμ±λ©λλ€.
MERGE INTO target_table [AS target_alias] USING source_table [AS source_alias] ON <join_condition> WHEN MATCHED THEN <update_statement> WHEN NOT MATCHED THEN <insert_statement>
target_table
: UPDATE λλ INSERTλ₯Ό μνν λμ ν μ΄λΈμ μ΄λ¦μ λλ€.AS target_alias
(Optional): λμ ν μ΄λΈμ λ³μΉ(alias)μ μ§μ ν©λλ€.source_table
: λμ ν μ΄λΈκ³Ό μ‘°μΈν μμ€ ν μ΄λΈμ μ΄λ¦μ λλ€.AS source_alias
(Optional): μμ€ ν μ΄λΈμ λ³μΉ(alias)μ μ§μ ν©λλ€.<join_condition>
: λμ ν μ΄λΈκ³Ό μμ€ ν μ΄λΈμ μ‘°μΈνκΈ° μν 쑰건μ μ§μ ν©λλ€.<update_statement>
: μ‘°μΈλ νμ λν μ λ°μ΄νΈ μμ μ μ μν©λλ€.<insert_statement>
: μ‘°μΈλμ§ μμ μμ€ ν μ΄λΈμ νμ λν μ½μ (insert) μμ μ μ μν©λλ€.
MERGE INTOλ₯Ό μ¬μ©ν κΈμ°κΈ° μμ
- μλμ μμλ₯Ό ν΅ν΄ MERGE INTOλ₯Ό μ¬μ©νμ¬ κΈμ°κΈ°λ₯Ό ν΄λ³΄κ² μ΅λλ€.
MERGE INTO posts AS target USING new_posts AS source ON (target.id = source.id) WHEN MATCHED THEN UPDATE SET target.title = source.title, target.content = source.content WHEN NOT MATCHED THEN INSERT (id, title, content) VALUES (source.id, source.title, source.content)
- μμ μμμμ
posts
ν μ΄λΈμ κΈμ μ 보λ₯Ό λ΄κ³ μλ λμ ν μ΄λΈμ λλ€. new_posts
ν μ΄λΈμ μλ‘ μμ±ν κΈμ μ 보λ₯Ό λ΄κ³ μλ μμ€ ν μ΄λΈμ λλ€.id
λ₯Ό κΈ°μ€μΌλ‘posts
μnew_posts
λ₯Ό μ‘°μΈνλ©°, μ‘°μΈλ κΈμtitle
κ³Όcontent
λ₯Ό μ λ°μ΄νΈνκ³ , μ‘°μΈλμ§ μμ κΈμid
,title
,content
λ₯Ό μ½μ ν©λλ€.
μ₯λ¨μ
MERGE INTOλ₯Ό μ¬μ©νμ¬ κΈμ°κΈ°λ₯Ό ν λμ μ₯λ¨μ μ λ€μκ³Ό κ°μ΅λλ€:
μ₯μ :
- λ³λμ 쑰건μ νμΈνμ§ μκ³ λ ν μ΄λΈμ μ λ°μ΄νΈνκ±°λ μΆκ°ν μ μμΌλ―λ‘ μμ± μκ°κ³Ό λ Έλ ₯μ μ μ½ν μ μμ΅λλ€.
- ν λ²μ μΏΌλ¦¬λ‘ λμμ μ λ°μ΄νΈμ μΆκ° μμ μ μ²λ¦¬ν μ μμ΅λλ€.
λ¨μ :
- λμ ν μ΄λΈκ³Ό μμ€ ν μ΄λΈμ ꡬ쑰μ μ»¬λΌ μμκ° μΌμΉν΄μΌ ν©λλ€.
- MERGE INTO λ¬Έλ²μ κ°λ¨νμ§ μμΌλ―λ‘, μ²μ μ¬μ©νλ κ²½μ°μλ μ‘°κΈ λ³΅μ‘ν΄ λ³΄μΌ μ μμ΅λλ€.
- λλμ λ°μ΄ν°λ₯Ό μ²λ¦¬ν κ²½μ° μ±λ₯ μ νκ° λ°μν μ μμ΅λλ€.
κ²°λ‘
MERGE INTOλ₯Ό μ¬μ©νμ¬ κΈμ°κΈ°λ₯Ό νλ©΄ λ°μ΄ν°λ² μ΄μ€ μ λ°μ΄νΈμ μΆκ° μμ μ ν¨μ¨μ μΌλ‘ μ²λ¦¬ν μ μμ΅λλ€. λ³Έλ¬Έμμ μ€λͺ ν μ¬μ©λ²μ μ°Έκ³ νμ¬ μ μ ν νμ©ν΄ 보μΈμ. MERGE INTOμ μ₯μ κ³Ό λ¨μ μ κ³ λ €νμ¬ νλ‘μ νΈμ μꡬ μ¬νμ λ§λ λ°©μμ μ ννμλ©΄ λ©λλ€.
λͺ©μ°¨: MERGE INTOλ₯Ό μ¬μ©νλ κΈμ°κΈ° λ°©λ²
1. μ¬μ©λ²
- MERGE INTO λ¬Έλ²
- MERGE INTOλ₯Ό μ¬μ©ν κΈμ°κΈ° μμ
2. μ₯λ¨μ
- μ₯μ
- λ¨μ
3. κ²°λ‘
1. μκ°
μ΄λ² κΈμμλ MERGE INTOλ₯Ό μ¬μ©νμ¬ κΈμ°κΈ° λ°©λ²μ λν΄ μμΈν μμλ³΄κ² μ΅λλ€. MERGE INTO λ¬Έμ λ°μ΄ν°κ° μμΌλ©΄ UPDATEλ₯Ό μννκ³ , μμΌλ©΄ INSERTλ₯Ό μννλ SQL ꡬ문μ λλ€. μ΄λ₯Ό ν΅ν΄ λ°μ΄ν°λ² μ΄μ€ ν μ΄λΈμ μ½κ² μ λ°μ΄νΈνκ³ μΆκ°ν μ μμ΅λλ€. λ³Έ κΈμμλ MERGE INTOλ₯Ό μ¬μ©νμ¬ κΈμ μμ±νλ λ°©λ²μ λν΄ μμΈν μ€λͺ νκ² μ΅λλ€. λ§ν¬λ€μ΄ νμμΌλ‘ μλ΄λλ¦¬κ² μ΅λλ€.
2. μ¬μ©λ²
2.1 MERGE INTO λ¬Έλ²
MERGE INTO λ¬Έμ μλμ κ°μ νμμΌλ‘ μμ±λ©λλ€:
MERGE INTO target_table [AS target_alias]
USING
source_table [AS source_alias]
ON
<join_condition>
WHEN MATCHED THEN
<update_statement>
WHEN NOT MATCHED THEN
<insert_statement>
target_table
: UPDATE λλ INSERTλ₯Ό μνν λμ ν μ΄λΈμ μ΄λ¦μ λλ€.AS target_alias
(Optional): λμ ν μ΄λΈμ λ³μΉ(alias)μ μ§μ ν©λλ€.source_table
: λμ ν μ΄λΈκ³Ό μ‘°μΈν μμ€ ν μ΄λΈμ μ΄λ¦μ λλ€.AS source_alias
(Optional): μμ€ ν μ΄λΈμ λ³μΉ(alias)μ μ§μ ν©λλ€.<join_condition>
: λμ ν μ΄λΈκ³Ό μμ€ ν μ΄λΈμ μ‘°μΈνκΈ° μν 쑰건μ μ§μ ν©λλ€.<update_statement>
: μ‘°μΈλ νμ λν μ λ°μ΄νΈ μμ μ μ μν©λλ€.<insert_statement>
: μ‘°μΈλμ§ μμ μμ€ ν μ΄λΈμ νμ λν μ½μ (insert) μμ μ μ μν©λλ€.
2.2 MERGE INTOλ₯Ό μ¬μ©ν κΈμ°κΈ° μμ
μλμ μμλ₯Ό ν΅ν΄ MERGE INTOλ₯Ό μ¬μ©νμ¬ κΈμ°κΈ°λ₯Ό ν΄λ³΄κ² μ΅λλ€.
MERGE INTO posts AS target
USING new_posts AS source
ON (target.id = source.id)
WHEN MATCHED THEN
UPDATE SET target.title = source.title, target.content = source.content
WHEN NOT MATCHED THEN
INSERT (id, title, content) VALUES (source.id, source.title, source.content)
μμ μμμμ:
posts
ν μ΄λΈμ κΈμ μ 보λ₯Ό λ΄κ³ μλ λμ ν μ΄λΈμ λλ€.new_posts
ν μ΄λΈμ μλ‘ μμ±ν κΈμ μ 보λ₯Ό λ΄κ³ μλ μμ€ ν μ΄λΈμ λλ€.id
λ₯Ό κΈ°μ€μΌλ‘posts
μnew_posts
λ₯Ό μ‘°μΈνλ©°, μ‘°μΈλ κΈμtitle
κ³Όcontent
λ₯Ό μ λ°μ΄νΈνκ³ , μ‘°μΈλμ§ μμ κΈμid
,title
,content
λ₯Ό μ½μ ν©λλ€.
3. μ₯λ¨μ
MERGE INTOλ₯Ό μ¬μ©νμ¬ κΈμ°κΈ°λ₯Ό ν λμ μ₯λ¨μ μ λ€μκ³Ό κ°μ΅λλ€:
3.1 μ₯μ
- λ³λμ 쑰건μ νμΈνμ§ μκ³ λ ν μ΄λΈμ μ λ°μ΄νΈνκ±°λ μΆκ°ν μ μμΌλ―λ‘ μμ± μκ°κ³Ό λ Έλ ₯μ μ μ½ν μ μμ΅λλ€.
- ν λ²μ μΏΌλ¦¬λ‘ λμμ μ λ°μ΄νΈμ μΆκ° μμ μ μ²λ¦¬ν μ μμ΅λλ€.
3.2 λ¨μ
- λμ ν μ΄λΈκ³Ό μμ€ ν μ΄λΈμ ꡬ쑰μ μ»¬λΌ μμκ° μΌμΉν΄μΌ ν©λλ€.
- MERGE INTO λ¬Έλ²μ κ°λ¨νμ§ μμΌλ―λ‘, μ²μ μ¬μ©νλ κ²½μ°μλ μ‘°κΈ λ³΅μ‘ν΄ λ³΄μΌ μ μμ΅λλ€.
- λλμ λ°μ΄ν°λ₯Ό μ²λ¦¬ν κ²½μ° μ±λ₯ μ νκ° λ°μν μ μμ΅λλ€.
4. κ²°λ‘
MERGE INTOλ₯Ό μ¬μ©νμ¬ κΈμ°κΈ°λ₯Ό νλ©΄ λ°μ΄ν°λ² μ΄μ€ μ λ°μ΄νΈμ μΆκ° μμ μ ν¨μ¨μ μΌλ‘ μ²λ¦¬ν μ μμ΅λλ€. λ³Έλ¬Έμμ μ€λͺ ν μ¬μ©λ²μ μ°Έκ³ νμ¬ μ μ ν νμ©ν΄ 보μΈμ. MERGE INTOμ μ₯μ κ³Ό λ¨μ μ κ³ λ €νμ¬ νλ‘μ νΈμ μꡬ μ¬νμ λ§λ λ°©μμ μ ννμλ©΄ λ©λλ€.
2. μ¬μ©λ²
MERGE INTO λ¬Έμ μ¬μ©νμ¬ κΈμ μμ±νλ λ°©λ²μ μμΈν μμλ³΄κ² μ΅λλ€. MERGE INTO λ¬Έμ λ°μ΄ν°κ° μ΄λ―Έ μ‘΄μ¬νλ κ²½μ° UPDATEλ₯Ό μννκ³ , λ°μ΄ν°κ° μ‘΄μ¬νμ§ μλ κ²½μ° INSERTλ₯Ό μννλ SQL ꡬ문μ λλ€. μ΄λ₯Ό ν΅ν΄ λ°μ΄ν°λ² μ΄μ€ ν μ΄λΈμ κ°νΈνκ² μ λ°μ΄νΈνκ³ μΆκ°ν μ μμ΅λλ€. μλμμλ MERGE INTOλ₯Ό μ¬μ©νμ¬ κΈμ μμ±νλ λ°©λ²μ λν΄ μμΈν μ€λͺ νκ² μ΅λλ€. κΈ μμ±μ λν μμλ λ§ν¬λ€μ΄ νμμΌλ‘ μλ΄λλ¦¬κ² μ΅λλ€.
2.1 MERGE INTO λ¬Έλ²
MERGE INTO λ¬Έμ λ€μκ³Ό κ°μ νμμΌλ‘ μμ±λ©λλ€:
MERGE INTO target_table [AS target_alias]
USING
source_table [AS source_alias]
ON
<join_condition>
WHEN MATCHED THEN
<update_statement>
WHEN NOT MATCHED THEN
<insert_statement>
target_table
: μ λ°μ΄νΈ λλ μ½μ μ μνν λμ ν μ΄λΈμ μ΄λ¦μ λλ€.AS target_alias
(Optional): λμ ν μ΄λΈμ λν λ³μΉ(alias)μ μ§μ ν μ μμ΅λλ€.source_table
: λμ ν μ΄λΈκ³Ό μ‘°μΈν μμ€ ν μ΄λΈμ μ΄λ¦μ λλ€.AS source_alias
(Optional): μμ€ ν μ΄λΈμ λν λ³μΉ(alias)μ μ§μ ν μ μμ΅λλ€.<join_condition>
: λμ ν μ΄λΈκ³Ό μμ€ ν μ΄λΈμ μ‘°μΈνκΈ° μν 쑰건μ μ§μ ν©λλ€.<update_statement>
: μ‘°μΈλ νμ λν μ λ°μ΄νΈ μμ μ μ μν©λλ€.<insert_statement>
: μ‘°μΈλμ§ μμ μμ€ ν μ΄λΈμ νμ λν μ½μ (insert) μμ μ μ μν©λλ€.
2.2 MERGE INTOλ₯Ό μ¬μ©ν κΈμ°κΈ° μμ
μλ μμλ₯Ό ν΅ν΄ MERGE INTOλ₯Ό μ¬μ©νμ¬ κΈμ°κΈ°λ₯Ό μννλ λ°©λ²μ μμλ΄ μλ€.
MERGE INTO posts AS target
USING new_posts AS source
ON (target.id = source.id)
WHEN MATCHED THEN
UPDATE SET target.title = source.title, target.content = source.content
WHEN NOT MATCHED THEN
INSERT (id, title, content) VALUES (source.id, source.title, source.content)
μμ μμμμ:
posts
ν μ΄λΈμ κΈμ μ 보λ₯Ό λ΄κ³ μλ λμ ν μ΄λΈμ λλ€.new_posts
ν μ΄λΈμ μλ‘ μμ±ν κΈμ μ 보λ₯Ό λ΄κ³ μλ μμ€ ν μ΄λΈμ λλ€.id
λ₯Ό κΈ°μ€μΌλ‘posts
μnew_posts
λ₯Ό μ‘°μΈνμ¬, μ‘°μΈλ κΈμtitle
κ³Όcontent
λ₯Ό μ λ°μ΄νΈνκ³ , μ‘°μΈλμ§ μμ κΈμid
,title
,content
λ₯Ό μ½μ ν©λλ€.
μμ μμλ₯Ό μ°Έκ³ νμ¬ MERGE INTO λ¬Έμ μ¬μ©νμ¬ κΈμ μμ±νλ λ°©λ²μ μ΅νμκΈ° λ°λλλ€.
3. μμ
μ΄μ μ€μ μμλ₯Ό ν΅ν΄ MERGE INTOλ₯Ό μ¬μ©νμ¬ κΈμ μμ±νλ λ°©λ²μ μμΈν μ€λͺ νκ² μ΅λλ€. μλμ μμλ₯Ό μ°Έκ³ νμ¬ μ€μ λ‘ κΈμ μμ±ν΄λ³΄μΈμ.
3.1 μμ λ°μ΄ν°
μ°μ , μμ±ν κΈμ λ΄κ³ μλ new_posts
ν
μ΄λΈκ³Ό κΈμ΄ μ μ₯λ posts
ν
μ΄λΈμ μμ±ν΄μΌ ν©λλ€. μμλ₯Ό μν΄ κ° ν
μ΄λΈμ ꡬ쑰λ λ€μκ³Ό κ°μ΅λλ€:
CREATE TABLE new_posts (
id INT,
title VARCHAR(255),
content TEXT
);
CREATE TABLE posts (
id INT,
title VARCHAR(255),
content TEXT
);
λν, new_posts
ν
μ΄λΈμ μμ±ν κΈμ μ 보λ₯Ό μ½μ
ν΄μΌ ν©λλ€. μμλ₯Ό μν΄ μλμ κ°μ λ°μ΄ν°λ₯Ό new_posts
ν
μ΄λΈμ μ½μ
ν΄λ³΄κ² μ΅λλ€:
INSERT INTO new_posts (id, title, content)
VALUES (1, '첫 λ²μ§Έ κΈ', 'μ΄ κΈμ 첫 λ²μ§Έ κΈμ
λλ€.'),
(2, 'λ λ²μ§Έ κΈ', 'μ΄ κΈμ λ λ²μ§Έ κΈμ
λλ€.');
3.2 MERGE INTOλ₯Ό μ¬μ©ν κΈμ°κΈ°
μ€μ λ‘ κΈμ μμ±ν΄λ³΄κ² μ΅λλ€. μλμ μμ 쿼리λ₯Ό μ€ννμ¬ new_posts
ν
μ΄λΈμ κΈμ posts
ν
μ΄λΈλ‘ λ³ν©νμΈμ:
MERGE INTO posts AS target
USING new_posts AS source
ON (target.id = source.id)
WHEN MATCHED THEN
UPDATE SET target.title = source.title, target.content = source.content
WHEN NOT MATCHED THEN
INSERT (id, title, content) VALUES (source.id, source.title, source.content);
μμ 쿼리λ₯Ό μ€ννλ©΄ new_posts
ν
μ΄λΈκ³Ό posts
ν
μ΄λΈμ΄ μ‘°μΈλμ΄, μ‘°μΈλ κΈμ title
κ³Ό content
κ° μ
λ°μ΄νΈλκ³ , μ‘°μΈλμ§ μμ κΈμ id
, title
, content
κ° posts
ν
μ΄λΈμ μ½μ
λ©λλ€. μμμμλ new_posts
ν
μ΄λΈμ λ κ°μ κΈμ΄ μμΌλ―λ‘, posts
ν
μ΄λΈμλ λ κ°μ κΈμ΄ μμ±λ©λλ€.
posts
ν
μ΄λΈμ λ΄μ©μ νμΈν΄λ³΄μΈμ. μλ 쿼리λ₯Ό μ€ννμ¬ κΈμ΄ μμ±λμλμ§ νμΈν μ μμ΅λλ€:
SELECT * FROM posts;
μμ 쿼리λ₯Ό μ€ννλ©΄ posts
ν
μ΄λΈμ μμ±λ κΈμ μ 보λ₯Ό νμΈν μ μμ΅λλ€.
μ΄μ MERGE INTOλ₯Ό μ¬μ©νμ¬ κΈμ μμ±νλ λ°©λ²μ μ€μ μμλ₯Ό ν΅ν΄ μ΅νμ΅λλ€. λ³ΈμΈμ νλ‘μ νΈλ λ°μ΄ν°λ² μ΄μ€μ μ μ©ν λμλ μμλ₯Ό μ°Έκ³ νμ¬ μ μ ν νμ©ν΄λ³΄μΈμ.
4. μ₯λ¨μ
MERGE INTO λ¬Έμ μ¬μ©νμ¬ κΈμ μμ±νλ λ°©λ²μλ λ€μν μ₯λ¨μ μ΄ μμ΅λλ€. μλμμλ MERGE INTOμ μ₯λ¨μ μ μμΈν μ€λͺ νκ² μ΅λλ€.
4.1 μ₯μ
4.1.1 κ°νΈν λ°μ΄ν° μ²λ¦¬
MERGE INTO λ¬Έμ μ΄λ―Έ μ‘΄μ¬νλ λ°μ΄ν°μ μ λ°μ΄νΈμ μλ‘μ΄ λ°μ΄ν°μ μ½μ μ ν λ²μ μ²λ¦¬ν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ κ°λ°μλ λ³λμ 쑰건문μ΄λ μΆκ°μ μΈ λ‘μ§μ μμ±νμ§ μκ³ λ λ°μ΄ν°λ₯Ό ν¨μ¨μ μΌλ‘ μ²λ¦¬ν μ μμ΅λλ€. λν, ν λ²μ μΏΌλ¦¬λ‘ μ¬λ¬ μμ μ μνν μ μμ΄ λ°μ΄ν°μ μΌκ΄μ±μ μ μ§ν μ μμ΅λλ€.
4.2 λ¨μ
4.2.1 볡μ‘ν 쑰건 μ²λ¦¬μ μ΄λ €μ
MERGE INTO λ¬Έμ μ¬μ©ν λ μ‘°μΈ μ‘°κ±΄μ΄λ μ λ°μ΄νΈ 쑰건μ μ νν μ§μ ν΄μΌ ν©λλ€. 쑰건 μ²λ¦¬κ° 볡μ‘ν κ²½μ°, MERGE INTO λ¬Έμ μ¬μ©νλ κ²μ΄ μ€νλ € λ²κ±°λ‘μΈ μ μμ΅λλ€. λ¨μν μ½μ μ΄λ μ λ°μ΄νΈ μμ μ΄ μλ 볡μ‘ν 쑰건 μ²λ¦¬κ° νμν κ²½μ°μλ λ€λ₯Έ λ°©λ²μ κ³ λ €ν΄μΌ ν©λλ€.
4.2.2 μ±λ₯ μ ν
MERGE INTO λ¬Έμ λλμ λ°μ΄ν°λ₯Ό μ²λ¦¬ν λ μ±λ₯ μ νκ° λ°μν μ μμ΅λλ€. μ‘°μΈ μ°μ°μ΄λ μ λ°μ΄νΈ μμ μ΄ λΉμ©μ΄ ν° μμ μ΄λ―λ‘, ν μ΄λΈμ ν¬κΈ°λ μΈλ±μ€ μ€μ μ¬λΆμ λ°λΌ μ±λ₯μ μν₯μ μ€ μ μμ΅λλ€. νΉν MERGE INTO λ¬Έμ μ¬μ©νλ κ²½μ°μλ 쑰건 μ²λ¦¬μ λν μ£Όμκ° νμνλ©°, μ±λ₯ νλ μμ κ³ λ €ν΄μΌ ν©λλ€.
4.3 μμ½
MERGE INTO λ¬Έμ μ¬μ©νμ¬ κΈμ μμ±νλ λ°©λ²μ κ°νΈνκ³ ν¨μ¨μ μΈ λ°μ΄ν° μ²λ¦¬λ₯Ό μ 곡ν©λλ€. ν λ²μ μΏΌλ¦¬λ‘ μ λ°μ΄νΈμ μ½μ μμ μ μ²λ¦¬ν μ μμ΄ κ°λ°μλ μμ±ν μ½λλ λ‘μ§μ μ΅μνν μ μμ΅λλ€. κ·Έλ¬λ 볡μ‘ν 쑰건 μ²λ¦¬μλ μ΄λ €μμ΄ μμ μ μκ³ , λλμ λ°μ΄ν° μ²λ¦¬ μ μ±λ₯ μ νκ° λ°μν μ μμ΅λλ€. μ΄λ¬ν μ₯λ¨μ μ κ³ λ €νμ¬ MERGE INTOλ₯Ό μ¬μ©ν λ μ μ ν μν©μμ νμ©ν΄λ³΄μΈμ.
5. κ²°λ‘
MERGE INTO λ¬Έμ λ°μ΄ν°λ² μ΄μ€μμ κΈμ μμ±νλ λ°μ ν¨κ³Όμ μΌλ‘ μ¬μ©λ μ μλ κΈ°λ₯μ λλ€. 볡μ‘ν 쑰건 μ²λ¦¬λ₯Ό κ°νΈνκ² ν΄κ²°ν μ μκ³ , μ λ°μ΄νΈμ μ½μ μμ μ ν λ²μ μ²λ¦¬ν μ μμ΄ ν¨μ¨μ μΈ λ°μ΄ν° μ²λ¦¬λ₯Ό μ 곡ν©λλ€.
νμ§λ§, μ₯μ κ³Ό λ¨μ μ κ³ λ €ν΄μΌ ν©λλ€. MERGE INTO λ¬Έμ μ¬μ©ν λλ μ‘°μΈ μ‘°κ±΄κ³Ό μ λ°μ΄νΈ 쑰건μ μ νν μ§μ ν΄μΌ ν©λλ€. 볡μ‘ν 쑰건 μ²λ¦¬κ° νμν κ²½μ°μλ λ€λ₯Έ λ°©λ²μ κ³ λ €ν΄μΌν©λλ€. λν, λλμ λ°μ΄ν° μ²λ¦¬ μ μ±λ₯ μ νκ° λ°μν μ μμΌλ―λ‘ μ±λ₯ νλμ μ£Όμν΄μΌ ν©λλ€.
κ²°λ‘ μ μΌλ‘, MERGE INTO λ¬Έμ λ°μ΄ν°λ₯Ό ν¨μ¨μ μΌλ‘ μ²λ¦¬νκ³ λ°μ΄ν°μ μΌκ΄μ±μ μ μ§νλ λ°μ μ μ©ν©λλ€. νμ§λ§, μ μ€νκ² μ¬μ©ν΄μΌ νλ©°, μμ μ 볡μ‘μ±κ³Ό μ±λ₯μ λν κ³ λ €κ° νμν©λλ€. νλ‘μ νΈμ μꡬμ¬νκ³Ό μν©μ λ§κ² ννμ μ μ°Ύμμ μ μ©ν΄λ³΄μΈμ.
λκΈ