RDB๐Ÿ—‚๏ธ

RDB ์„ค์ • : SQL Mode

wannaDevelopIt 2026. 4. 6. 06:54

RDB์—์„œ DB ์„œ๋ฒ„๊ฐ€ SQL ๊ตฌ๋ฌธ์„ ์–ด๋–ป๊ฒŒ ํ•ด์„ํ•˜๊ณ , ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์˜ ์ฒ™๋„๋ฅผ ์ง€์ •ํ•ด์ค„์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค

 

1. ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” mode

1) STRICT_TRANS_TABELS

๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ๋งž์ง€ ์•Š๊ฑฐ๋‚˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ๊ฐ’์„ ์ž…๋ ฅํ•  ๋•Œ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค

- ๊บผ์ง„ ๊ฒฝ์šฐ : ์ˆซ์ž๊ฐ€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ์ตœ๋Œ€์น˜๋ฅผ ๋ฒ—์–ด๋‚œ ๊ฒฝ์šฐ, ์ตœ๋Œ€์น˜๋งŒํผ๋งŒ ์ €์žฅํ•˜๊ณ  ๊ฒฝ๊ณ ํ•œ๋‹ค

-> ํ•ด๋‹น ๋ชจ๋“œ๋ฅผ ์ผœ์•ผ DB๊ฐ€ ๊ฐ’ ์ž…๋ ฅ์„ ๊ฑฐ๋ถ€ํ•˜๊ณ  rollback ํ•œ๋‹ค

 

2) ONLY_FULL_GROUP_BY

Group by ์ ˆ์„ ์‚ฌ์šฉํ•  ๋•Œ ์„ ํƒ๋ชฉ๋ก์— ์ง‘๊ณ„ ํ•จ์ˆ˜๋‚˜ Group by์— ํฌํ•จ๋˜์ง€ ์•Š์€ ์ปฌ๋Ÿผ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ฟผ๋ฆฌ๋ฅผ ๊ฑฐ๋ถ€ํ•œ๋‹ค. SQL ํ‘œ์ค€ ์ค€์ˆ˜๋ฅผ ์œ„ํ•œ ๋ชจ๋“œ

 

3) NO_ZERO_DATE / NO_ZERO_IN_DATE

0000-00-00 ๊ฐ™์€ ์œ ํšจํ•˜์ง€ ์•Š์€ ๋‚ ์งœ์˜ ์ž…๋ ฅ ํ—ˆ์šฉ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ชจ๋“œ. ์ผ๋ฐ˜์ ์œผ๋กœ ๊ธˆ์ง€ํ•˜๋Š” ์ถ”์„ธ

 

4) ANSI_QUOTES

ํฐ ๋”ฐ์˜ดํ‘œ(")๋ฅผ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์ด ์•„๋‹Œ ํ…Œ์ด๋ธ”์ด๋‚˜ ์ปฌ๋Ÿผ๋ช… ๊ฐ™์€ ์‹๋ณ„์ž๋กœ ์ธ์‹ํ•˜๊ฒŒ ํ•œ๋‹ค. SQL ํ‘œ์ค€ ์ค€์ˆ˜๋ฅผ ์œ„ํ•œ ๋ชจ๋“œ

 

 

2. ๊ด€๋ จ ์ฟผ๋ฆฌ

DB ํˆด์—์„œ ํ•ด๋‹น DB์— ์„ค์ •๋œ ๋ชจ๋“œ๋ฅผ ๋ณด๊ธฐ ์œ„ํ•œ ์ฟผ๋ฆฌ

SELECT @@sql_mode;

 

ํ•ด๋‹น ์„ธ์…˜์—์„œ ๋ชจ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ์ฟผ๋ฆฌ

SET SESSION sql_mode = '์„ค์ •ํ•˜๊ณ  ์‹ถ์€ ๋ชจ๋“œ';

 

์„ธ์…˜์—์„œ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒฝ์šฐ ๊ทธ ์„ธ์…˜์ด ์ข…๋ฃŒ๋˜๋ฉด ์›๋ž˜๋Œ€๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค. ์˜๊ตฌ์ ์œผ๋กœ ๋ณ€๊ฒฝ์„ ์›ํ•˜๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น DB ์„ค์ •ํŒŒ์ผ(my.cnf ๋“ฑ)์„ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค

+ ํด๋ผ์šฐ๋“œ DB ๊ฐ™์€ PAAS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ์„œ๋น„์Šค์—์„œ ๋ชจ๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ํŽ˜์ด์ง€๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๊ทธ ๊ณณ์—์„œ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค