MERGE INTO
ํด๋น ๊ฐ์ด ์์ผ๋ฉด UPDATEํ๊ณ ์์ผ๋ฉด INSERTํ๋ ๊ตฌ๋ฌธ์ ๋๋ค.
๋ง์ฝ์ ํ ์ด๋ธ ํ๋๋ง ๊ฐ์ง๊ณ ์์ ์ ํ ๊ฒฝ์ฐ, MERGE INTO ํ ์ด๋ธ USING DUAL ~ ์ผ๋ก ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
์์
melon_chart ํ ์ด๋ธ์ ๋๋ค.
melon_chart_new ํ ์ด๋ธ์ ๋๋ค.
melon_chart_new์ ์๋ ๋ฐ์ดํฐ์ melon_chart์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ค๋ณต๋์ง ์๊ฒ ํฉ์น๊ณ , ์ต์ ํ๋ฅผ ์์ผ์ฃผ๊ณ ์ถ๋ค๋ฉด ์๋์ ๊ฐ์ด ์ฟผ๋ฆฌ๋ฌธ์ ์์ฑํ๋ฉด ๋ฉ๋๋ค.
merge into melon_chart m1
using melon_chart_new m2
on (m1.singer = m2.singer and m1.song = m2.song)
when matched then
update set m1.ranking = m2.ranking, m1.remark = 'continue'
when not matched then
insert values(m2.ranking, m2.singer, m2.song, 'new')
;
select * from melon_chart where remark is not null order by ranking;
์ฐธ๊ณ
'๐ป CS > Database' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ค๋ผํด] WITH ๊ตฌ๋ฌธ (0) | 2025.01.16 |
---|---|
[์ค๋ผํด] NULL๊ณผ ๊ณต๋ฐฑ (0) | 2025.01.10 |
[Oracle] ์ค๋ผํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฒ์ ํ์ธ ์ฟผ๋ฆฌ (0) | 2024.12.19 |