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๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํด๋น ์๋น์ค์์ ๋ชจ๋๋ฅผ ์์ ํ๋ ํ์ด์ง๋ฅผ ์ ๊ณตํ๊ณ ์์ผ๋ฏ๋ก ๊ทธ ๊ณณ์์ ์์ ํด์ผ ํ๋ค
'RDB๐๏ธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๋จ์ผ ์ธ๋ฑ์ค vs ๋ณตํฉ ์ธ๋ฑ์ค vs ์ธ๋ฑ์ค ๋จธ์ง(Index Merge) (1) | 2025.11.25 |
|---|---|
| SQL ๊ฐ๋ฐ์ (SQLD) ์๊ฒฉ์ฆ ๋ฐ๊ธฐ Part 1 ์น์ 0. (0) | 2023.06.03 |
| SQL : ์ธ๋ฑ์ค (0) | 2023.01.25 |
| SQL : JOIN (0) | 2023.01.11 |
| SQL : ๋ฐ์ดํฐ ๋ณ๊ฒฝ (0) | 2023.01.10 |