MySQL ํธ๋ฆฌ๊ฑฐ
MySQL ํธ๋ฆฌ๊ฑฐ์ ๋ํด ์ฝ๊ฒ ์ค๋ช
ํ๋ ์์์
๋๋ค. ํธ๋ฆฌ๊ฑฐ์ ๊ฐ๋
๋ถํฐ ์์ฑ ๋ฐฉ๋ฒ, ํ์ฉ ์์(์ฌ๊ณ ๊ด๋ฆฌ, ๊ธ์ฌ ์ด๋ ฅ ๊ด๋ฆฌ)๊น์ง ์ฐจ๊ทผ์ฐจ๊ทผ ์๋ ค์ค๋๋ค.
๋ชฉ์ฐจ
1.
2.
3.
4.
5.
6.
7.
ํธ๋ฆฌ๊ฑฐ๋? [00:00:00]
ํธ๋ฆฌ๊ฑฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํน์ ์์
(INSERT, UPDATE, DELETE)์ด ๋ฐ์ํ ๋ ์๋์ผ๋ก ์คํ๋๋ ํน๋ณํ ํ๋ก๊ทธ๋จ์ด์์.
์๋ฅผ ๋ค์ด, ๊ฒ์๊ธ์ ์ญ์ ํ๋ฉด ๊ด๋ จ ๋๊ธ๋ ์๋ ์ญ์ ํ๊ฑฐ๋, ๊ฒ์๊ธ ์์ฑ ์ ์์ฑ์์๊ฒ ํฌ์ธํธ๋ฅผ ์๋์ผ๋ก ์ฃผ๋ ๊ฒ์ฒ๋ผ์.
์ฆ, โ๋ฐฉ์์ (Trigger)โ์ฒ๋ผ ์ด๋ค ์ฌ๊ฑด์ด ๋ฐ์ํ๋ฉด ์๋์ผ๋ก ์๋ํ๋ ๊ธฐ๋ฅ์
๋๋ค.
ํธ๋ฆฌ๊ฑฐ ์์ฑ ๋ฐฉ๋ฒ๊ณผ ๊ตฌ์กฐ [00:02:30]
ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋ง๋ค ๋๋ ๋ค์ ์์๋ฅผ ์ง์ ํด์:
1.
ํธ๋ฆฌ๊ฑฐ ์ด๋ฆ
2.
์คํ ์์ : BEFORE(์ด์ ), AFTER(์ดํ)
3.
์ด๋ฒคํธ ์ข
๋ฅ: INSERT(์ฝ์
), UPDATE(์์ ), DELETE(์ญ์ )
4.
์ ์ฉํ ํ
์ด๋ธ
5.
FOR EACH ROW: ๊ฐ ๋ฐ์ดํฐ ํ๋ง๋ค ์คํ
6.
ํธ๋ฆฌ๊ฑฐ ์์์ ์คํํ SQL ์ฝ๋ ๋ธ๋ก (BEGIN ... END)
์๋ฅผ ๋ค์ด, โ์ฃผ๋ฌธ ํ
์ด๋ธ์ ๋ฐ์ดํฐ๊ฐ ์ถ๊ฐ๋ ํ ์ฌ๊ณ ๋ฅผ ์ค์ธ๋คโ ๊ฐ์ ์์
์ ์ง์ ํ ์ ์์ด์.
NEW์ OLD ํค์๋ ์๋ฏธ์ ํ์ฉ [00:08:00]
โข
NEW: ์๋ก ๋ค์ด์ค๋ ๋ฐ์ดํฐ ๊ฐ
โข
OLD: ๊ธฐ์กด์ ์๋ ๋ฐ์ดํฐ ๊ฐ
INSERT๋ ํญ์ NEW๋ง ์ฌ์ฉํ๊ณ , UPDATE๋ OLD(์์ ์ ๊ฐ)์ NEW(์์ ํ ๊ฐ)๋ฅผ ๋ชจ๋ ์ฌ์ฉํ ์ ์์ด์.
DELETE๋ ์ญ์ ๋๊ธฐ ์ ๊ฐ์ด OLD์ด๊ณ , ์ญ์ ํ์๋ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ NEW๋ NULL์ด์์.
์๋ฅผ ๋ค์ด, ๊ธ์ฌ๊ฐ ๋ณ๊ฒฝ๋ ๋ ์ด์ ๊ธ์ฌ(OLD)์ ์ ๊ธ์ฌ(NEW)๋ฅผ ๋น๊ตํด ์ฐจ์ด๋ฅผ ๊ณ์ฐํ ์ ์์ฃ .
ํธ๋ฆฌ๊ฑฐ ํ์ฉ ์์: ์ฃผ๋ฌธ ํ ์ฌ๊ณ ๊ด๋ฆฌ [00:07:20]
์ฃผ๋ฌธ ํ
์ด๋ธ์ ์ฃผ๋ฌธ์ด ์ถ๊ฐ๋๋ฉด, ํธ๋ฆฌ๊ฑฐ๊ฐ ์๋์ผ๋ก ์ํ ํ
์ด๋ธ์์ ํด๋น ์ํ ์ฌ๊ณ ๋ฅผ ์ฃผ๋ฌธ ์๋๋งํผ ๋นผ์ค๋๋ค.
์ด๋ NEW.quantity ๊ฐ์ ์์ผ๋ก ์๋ก ๋ค์ด์จ ์ฃผ๋ฌธ ์๋์ ์ฐธ์กฐํด ์ฌ๊ณ ๋ฅผ ์กฐ์ ํด์.
๊ธ์ฌ ์ด๋ ฅ ๊ด๋ฆฌ ํธ๋ฆฌ๊ฑฐ ๋ง๋ค๊ธฐ [00:10:20]
์ง์์ ๊ธ์ฌ๊ฐ ๋ฐ๋ ๋๋ง๋ค ๊ธ์ฌ ์ด๋ ฅ ํ
์ด๋ธ์ ์ด์ ๊ธ์ฌ(OLD), ์ ๊ธ์ฌ(NEW), ๊ทธ๋ฆฌ๊ณ ๊ธ์ฌ ์ฐจ์ด(NEW - OLD)๋ฅผ ๊ธฐ๋กํ๋ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋ง๋ญ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ๊ธ์ฌ ๋ณ๋ ๋ด์ญ์ ์๋์ผ๋ก ๊ด๋ฆฌํ ์ ์์ด์.
ํธ๋ฆฌ๊ฑฐ ํ
์คํธ ๋ฐ ๊ฒฐ๊ณผ ํ์ธ [00:15:40]
์ง์์ ๊ธ์ฌ๋ฅผ ์
๋ฐ์ดํธํ๋ฉด, ํธ๋ฆฌ๊ฑฐ๊ฐ ์๋์ผ๋ก ๊ธ์ฌ ์ด๋ ฅ ํ
์ด๋ธ์ ๊ธฐ๋ก์ ๋จ๊ธฐ๋์ง ํ์ธํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๊ธ์ฌ๊ฐ 330์์ 400์ผ๋ก ๋ฐ๋๋ฉด, ์ด๋ ฅ ํ
์ด๋ธ์ ์ด์ ๊ธ์ฌ, ์ ๊ธ์ฌ, ์ฐจ์ด๊ฐ ์ ํํ ์ ์ฅ๋๋ ๊ฒ์ ๋ณผ ์ ์์ด์.
๋ง๋ฌด๋ฆฌ ์ ๋ฆฌ [00:17:50]
ํธ๋ฆฌ๊ฑฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
์ ์๋ํํ๊ณ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ๋ ๋ฐ ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
ํน์ ์ด๋ฒคํธ์ ๋ฐ๋ผ ์๋์ผ๋ก ์คํ๋์ด ๊ด๋ จ ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ๋ก๊ทธ ๊ธฐ๋ก, ์ฐ๊ด ๋ฐ์ดํฐ ์
๋ฐ์ดํธ ๋ฑ์ ์ฝ๊ฒ ํ ์ ์์ด์.
์ด๋ฒ ์์์์ ํธ๋ฆฌ๊ฑฐ์ ๊ธฐ๋ณธ ๊ฐ๋
๊ณผ ํ์ฉ๋ฒ์ ์ตํ ๋๋ฉด, ์ค๋ฌด์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ๊ฐ ํจ์ฌ ํธํด์ง ๊ฑฐ์์!
์์ ๋ณด์๋ฉด์ ์ง์ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋ง๋ค์ด ๋ณด๊ณ , NEW์ OLD ํค์๋๋ฅผ ํ์ฉํด ๋ค์ํ ์๋ํ ์์
์ ์๋ํด ๋ณด์ธ์. ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ง์น โ์ค์ค๋ก ์ผํ๋ ๋น์โ์ฒ๋ผ ๋๊ปด์ง ๊ฑฐ์์! 