top

๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

IT/MySQL

MySQL ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ(์กฐ๊ฑด ํ•ธ๋“ค๋Ÿฌ)

MySQL์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ์ง์ ‘ ์˜ค๋ฅ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค. ํ˜•์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

DECLARE    ์•ก์…˜    HANDLER FOR    ์˜ค๋ฅ˜์กฐ๊ฑด    ์ฒ˜๋ฆฌํ• ๋ฌธ์žฅ;    


  • ์•ก์…˜ : CONTINUE - [์ฒ˜๋ฆฌํ• ๋ฌธ์žฅ] ๋ถ€๋ถ„์ด ์ฒ˜๋ฆฌ๋จ / EXIT - ํ”„๋กœ์‹œ์ € ์ข…๋ฃŒ
  • ์˜ค๋ฅ˜ ์กฐ๊ฑด : ์–ด๋–ค ์˜ค๋ฅ˜๋ฅผ ์„ค์ •ํ•  ๊ฒƒ์ธ์ง€ ์ง€์ •. 
  • ์ฒ˜๋ฆฌํ•  ๋ฌธ์žฅ : ์ฒ˜๋ฆฌํ•  ๋ฌธ์žฅ์ด ์—ฌ๋Ÿฌ๊ฐœ๋ผ๋ฉด BEGIN~END๋กœ ๋ฌถ์„ ์ˆ˜ ์žˆ๋‹ค.
์กฐ๊ฑด ํ•ธ๋“ค๋Ÿฌ์˜ ๊ฐ ํ˜•์‹์˜ ์ž์„ธํ•œ ์„ค๋ช…์„ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค. 

์˜ค๋ฅ˜์กฐ๊ฑด๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์•ก์…˜์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌํ•  ๋ฌธ์žฅ์ด ์‹คํ–‰๋œ๋‹ค. ๋งŒ์•ฝ DECLARE๊ฐ€ ์—†๋‹ค๋ฉด MySQL์ด ์ง์ ‘ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด๋‹ค.


์˜ˆ์‹œ๋ฅผ ๋ณด์ž. 1146์€ ํ…Œ์ด๋ธ”์ด ์—†์„ ๊ฒฝ์šฐ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜ ์ฝ”๋“œ๋‹ค. 6๋ฒˆ์งธ ์ค„์˜ Select ์•ˆ์— noTable์ด๋ผ๋Š” ํ…Œ์ด๋ธ”์ด ์กด์žฌํ•˜์ง€ ์•Š์•„์„œ DECLAREํ–‰์ด ์‹คํ–‰๋œ ๊ฒƒ์ด๋‹ค. ์ฒ˜๋ฆฌํ•  ๋ฌธ์žฅ์ธ SELECT 'ํ…Œ์ด๋ธ”์ด ์—†๋‹ท' ์ด ์‹คํ–‰๋˜์–ด ๊ฒฐ๊ณผ์ฐฝ์— ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ๋œ๋‹ค. 


ํ˜„์žฌ ์ฝ”๋“œ์˜ ์˜ค๋ฅ˜๋ฅผ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜ SQL๋ฌธ์„ ์‹คํ–‰ํ•˜๋ฉด๋œ๋‹ค.

SHOW ERRORS;    -- ์˜ค๋ฅ˜ ๋ฉ”์„ธ์ง€๋ฅผ Level, Code, Message ์ˆœ์œผ๋กœ ์•Œ๋ ค์คŒ

SHOW WARNNINGS;    -- ๊ฒฝ๊ณ ์— ๋Œ€ํ•œ ์ฝ”๋“œ์™€ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ

SHOW COUNT(*) ERRORS;    -- ๋ฐœ์ƒ๋œ ์˜ค๋ฅ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅ


๋‹ค์–‘ํ•œ ์˜ค๋ฅ˜ ์ฝ”๋“œ์™€ ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ์•Œ๊ณ ์‹ถ๋‹ค๋ฉด ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์ž.(MySQL 5.7 ๋ฒ„์ „)

โ–ทhttps://dev.mysql.com/doc/refman/5.7/en/error-messages-server.html