Skip to content

Latest commit

ย 

History

History
72 lines (44 loc) ยท 2.81 KB

Trigger_Procedure.md

File metadata and controls

72 lines (44 loc) ยท 2.81 KB

ํŠธ๋ฆฌ๊ฑฐ(Trigger)์™€ ํ”„๋กœ์‹œ์ €(Procedure)

ํŠธ๋ฆฌ๊ฑฐ (Trigger) ๐Ÿ’ฃ

ํŠน์ • ํ…Œ์ด๋ธ”์— INSERT, UPDATE, DELETE์™€ ๊ฐ™์€ DML๋ฌธ์ด ์ˆ˜ํ–‰๋˜์—ˆ์„ ๋•Œ,
DB์—์„œ ์ž๋™์œผ๋กœ ๋™์ž‘ํ•˜๋‹๋ก ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ

ํŠน์ง•

  • ํ…Œ์ด๋ธ”, ๋ทฐ, DB์ž‘์—…์„ ๋Œ€์ƒ์œผ๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ๊ณ , ์ „์ฒด ํŠธ๋žœ์žญ์…˜ ์ž‘์—…์— ๋Œ€ํ•ด
    ๋ฐœ์ƒ๋˜๋Š” Trigger์™€ ๊ฐ ํ–‰์— ๋Œ€ํ•ด ๋ฐœ์ƒํ•˜๋Š” Trigger๊ฐ€ ์žˆ์Œ

  • DB ๋ณด์•ˆ์˜ ์ ์šฉ, ์œ ํšจํ•˜์ง€ ์•Š์€ ํŠธ๋žœ์žญ์…˜์˜ ์˜ˆ๋ฐฉ, ์—…๋ฌด ๊ทœ์น™ ์ž๋™ ์ ์šฉ ๋“ฑ์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Œ

  • ๋ฌด๊ฒฐ์„ฑ ์œ ์ง€, ๋กœ๊ทธ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ ๋“ฑ์˜ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค

  • ํšจ๊ณผ์ ์ธ ๋ฐ์ดํ„ฐ ๋ณด๊ด€

๋‹จ์ 

  • ์œ ์ง€๋ณด์ˆ˜์˜ ์–ด๋ ค์›€ (๋ฌธ์„œํ™” ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ์ค‘๊ฐ„ ํˆฌ์ž…๋œ ๊ฐœ๋ฐœ์ž๋“ค์€ ํŒŒ์•… ์–ด๋ ค์›€)
    ๊ณผ๋„ํ•œ ์‚ฌ์šฉ ์‹œ ๋ณต์žกํ•œ ์ƒํ˜ธ ์˜์กด์„ฑ์„ ์•ผ๊ธฐ

  • ํ•˜๋‚˜์˜ ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ํ™œ์„ฑํ™” โ€“> ์ด ํŠธ๋ฆฌ๊ฑฐ ๋‚ด์˜ SQL๋ฌธ ์ˆ˜ํ–‰ โ€“> ๊ทธ ๊ฒฐ๊ณผ๋กœ ๋‹ค๋ฅธ ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ํ™œ์„ฑํ™”
    โ€“> ๊ทธ ํŠธ๋ฆฌ๊ฑฐ์˜ SQL ๋ฌธ ์ˆ˜ํ–‰ โ€“> ๋ฐ˜๋ณต (๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ค์›€)



ํ”„๋กœ์‹œ์ € (Procedure) โšก๏ธ

์ €์žฅ ํ”„๋กœ์‹œ์ €๋Š” ๋ฏธ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์— ์ผ๋ จ์˜ SQL ๋ฌธ์„ ๋งŒ๋“ค์–ด ๋‘๊ณ 
ํ”„๋กœ์‹œ์ €๋“ค์„ ์ˆ˜ํ–‰ํ•˜์—ฌ SQL ๋ฌธ์„ ๊ฐ„๋‹จํžˆ ์‹คํ–‰ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ณ ์•ˆํ•œ ๊ฒƒ

ํŠน์ง•

  • SQL ๋ฌธ๋งŒ ๋ฟ๋งŒ์•„๋‹ˆ๋ผ ์‹คํ–‰๋ถ€์—์„œ IF ๋ฌธ WHILE ๋ฌธ ๊ณผ ๊ฐ™์€
    ์ œ์–ด๋ฌธ/๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ ˆ์ฐจํ˜• ํ”„๋กœ๊ทธ๋žจ์ด ๊ฐ€๋Šฅ ํ•˜๊ฒŒ ๋œ๋‹ค

  • ์‹œ์Šคํ…œ์˜ ์ผ์ผ ๋งˆ๊ฐ ์ž‘์—…, ์ผ๊ด„ ์ž‘์—… ๋“ฑ์— ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค

  • ์Šคํ† ์–ด๋“œ(Stored) ํ”„๋กœ์‹œ์ €๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค.

  • ํ•˜๋‚˜์˜ ์š”์ฒญ์œผ๋กœ ์—ฌ๋Ÿฌ SQL๋ฌธ์„ ์‹คํ–‰ ๊ฐ€๋Šฅ (๋„คํŠธ์›Œํฌ ๋ถ€ํ•˜๋ฅผ ์ค„์—ฌ์คŒ)
    ->๋„คํŠธ์›Œํฌ ์†Œ์š” ์‹œ๊ฐ„์„ ์ค„์—ฌ ์„ฑ๋Šฅ ๊ฐœ์„  ๊ฐ€๋Šฅ

  • ๊ธฐ๋Šฅ ๋ณ€๊ฒฝ์ด ํŽธ๋ฆฌ (ํŠน์ • ๊ธฐ๋Šฅ์„ ๋ณ€๊ฒฝํ•  ๋•Œ ํ”„๋กœ์‹œ์ €๋งŒ ๋ณ€๊ฒฝํ•˜๋Š” ์‹์œผ๋กœ)

๋‹จ์ 

  • ๋ฌธ์ž๋‚˜ ์ˆซ์ž์—ด ์—ฐ์‚ฐ์— ์‚ฌ์šฉ ์‹œ ์˜คํžˆ๋ ค C, Java๋ณด๋‹ค ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ์Œ

  • ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ค์›€ (๋ฌธ์„œํ™” ํ•ด๋‘์ง€ ์•Š์œผ๋ฉด ์–ด๋””์— ์‚ฌ์šฉ๋˜๋Š”์ง€ ํŒŒ์•… ์–ด๋ ค์›€, ํŠธ๋ฆฌ๊ฑฐ์™€ ๋น„์Šท)



์ฐจ์ด์  โœจ

ํ”„๋กœ์‹œ์ € ํŠธ๋ฆฌ๊ฑฐ
CREATE Procedure ๋ฌธ๋ฒ• CREATE Trigger ๋ฌธ๋ฒ•
EXECUTE ๋ช…๋ น์–ด๋กœ ์‹คํ–‰ ์ƒ์„ฑ ํ›„ ์ž๋™ ์‹คํ–‰
COMMIT, ROLLBACK ๊ฐ€๋Šฅ COMMIT, ROLLBACK ์•ˆ๋จ

  • ํŠธ๋ฆฌ๊ฑฐ ๋‚ด๋ถ€์—์„œ ํ”„๋กœ์‹œ์ € ์ •์˜ ๊ฐ€๋Šฅ ํ”„๋กœ์‹œ์ € ๋‚ด๋ถ€์—์„œ ํŠธ๋ฆฌ๊ฑฐ ์ •์˜ ๋ถˆ๊ฐ€ โ—
    (ํŠธ๋ฆฌ๊ฑฐ๋Š” ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ)

  • ํŠธ๋ฆฌ๊ฑฐ๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜ ๊ฐ’์ด๋‚˜ ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์—†์Œ โ—
    ํ”„๋กœ์‹œ์ €๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜ ๊ฐ’์ด๋‚˜ ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Œ (๋ฆฌํ„ด๊ฐ’ ์—†์–ด๋„ ๋จ, ์ˆ˜ํ–‰ํ•˜๋Š” ์ ˆ์ฐจ๊ฐ€ ๋ชฉ์ ์ด๊ธฐ ๋•Œ๋ฌธ)