๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ธ๋ ํค ์ ์ฝ ์กฐ๊ฑด(foreign key constraint)์ค์ ์ด๋
์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ๊ธฐ ์ํด ์ํํ๋ ์์ ์ ๋งํ๋ค.
ํ ์ด๋ธ ์ค์ ๋ฐ์, foreign key๋ก ์ด๋ํ๋ค.
์ค๋ฅธ์ชฝ์ foreign key options๊ฐ ์๋๋ฐ, ์ฌ๊ธฐ์์ ๋ณ๊ฒฝํ๋ฉด ๋๋ค
1. RESTRICT (๊ธฐ๋ณธ๊ฐ)
- ์ค๋ช : ์ธ๋ ํค๋ก ์ฐธ์กฐํ๋ ํ์ด ๋ค๋ฅธ ํ ์ด๋ธ์์ ์ฐธ์กฐ๋๊ณ ์์ ๋, ํด๋น ํ์ ์ญ์ ๋ ์ ๋ฐ์ดํธ๋ฅผ ์ ํํ๋ค
- ๋์: ๋ง์ฝ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ์ด ๊นจ์ง ์ ์๋ ๊ฒฝ์ฐ, ์ญ์ ๋ ์ ๋ฐ์ดํธ๊ฐ ํ์ฉ๋์ง ์๋๋ค
- ์์ : ๋ง์ฝ ํ์ ํ ์ด๋ธ์ ํน์ ํ์์ด ์ฌ๋ฌ ์ฑ์ ํ ์ด๋ธ์์ ์ฐธ์กฐ๋๊ณ ์๋ค๋ฉด, ๊ทธ ํ์์ ์ญ์ ํ๋ ค๊ณ ํ ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ์ญ์ ๊ฐ ๋์ง ์๋๋ค
2. CASCADE **์ค์**
- ์ค๋ช : ์ธ๋ ํค๋ก ์ฐธ์กฐํ๋ ํ์ด ์ญ์ ๋๊ฑฐ๋ ์ ๋ฐ์ดํธ๋ ๋, ๊ทธ ํ์ ์ฐธ์กฐํ๋ ๋ชจ๋ ํ๋ ํจ๊ป ์ญ์ ๋๊ฑฐ๋ ์ ๋ฐ์ดํธ๋๋ค
- ๋์: ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ๊ธฐ ์ํด ์๋์ผ๋ก ๊ด๋ จ๋ ํ๋ ์ญ์ ํ๊ฑฐ๋ ์ ๋ฐ์ดํธํ๋ค
- ์์ : ๋ง์ฝ ํ์์ด ์ญ์ ๋๋ฉด, ๊ทธ ํ์๊ณผ ๊ด๋ จ๋ ๋ชจ๋ ์ฑ์ ๊ธฐ๋ก๋ ์๋์ผ๋ก ์ญ์ ๋๋ค
3. SET NULL
- ์ค๋ช : ์ธ๋ ํค๋ก ์ฐธ์กฐํ๋ ํ์ด ์ญ์ ๋๊ฑฐ๋ ์ ๋ฐ์ดํธ๋ ๋, ๊ทธ ์ธ๋ ํค ๊ฐ์ NULL๋ก ์ค์ ํ๋ค
- ๋์: ์ฐธ์กฐํ๋ ํ ์ด๋ธ์ ์ธ๋ ํค ์ปฌ๋ผ์ NULL๋ก ์ค์ ํ์ฌ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ๋ค
- ์์ : ๋ง์ฝ ํ์์ด ์ญ์ ๋๋ฉด, ๊ทธ ํ์์ ์ฑ์ ๊ธฐ๋ก์์ ํ์ ID๋ฅผ NULL๋ก ์ค์ ํ๋ค
4. NO ACTION
- ์ค๋ช : RESTRICT์ ๋น์ทํ์ง๋ง, ์ค์ ๋ก๋ ์ฐ๊ธฐ๋ ์ ์ฝ ์กฐ๊ฑด์ ํ์ธํ๋ ๋ฐฉ์. ํน์ ์์ ๊น์ง๋ ์๋ฌด๋ฐ ์ ์ฝ์ ๊ฐํ์ง ์์ง๋ง, ํธ๋์ญ์ ์ด ์ปค๋ฐ๋๊ธฐ ์ ์ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ์ ๊ฒ์ฌ
- ๋์: ์ฆ์ ์ ์ฝ ์กฐ๊ฑด์ ํ์ธํ์ง ์๊ณ , ํธ๋์ญ์ ์ปค๋ฐ ์์ ์ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ์ ๊ฒ์ฌํ์ฌ ๋ฌธ์ ๊ฐ ์์ผ๋ฉด ์ค๋ฅ๋ฅผ ๋ฐ์
- ์์ : ํธ๋์ญ์ ๋ด์์ ์ฌ๋ฌ ์์ ์ ์ํํ ๋, ํธ๋์ญ์ ์ด ์ปค๋ฐ๋ ๋๊น์ง๋ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ ์กฐ๊ฑด์ ํ์ธํ์ง ์์ง๋ง, ์ปค๋ฐ ์์ ์ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ์ ๋ฌธ์ ๊ฐ ์์ผ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค
'MySQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
MySQL) Instargram (1) : ํ๊ทธ, ์ข์์, ํ๋ก์ฐ ๋ฐ์ดํฐ ์ ๋ ฅํ๊ธฐ (1) | 2024.05.17 |
---|---|
MySQL) 3๊ฐ ์ด์์ ํ ์ด๋ธ ์กฐ์ธํ๊ธฐ (0) | 2024.05.16 |
MySQL) ๋ ๊ฐ์ ํ ์ด๋ธ ์กฐ์ธํ๊ธฐ (2) | 2024.05.16 |
MySQL) ๋ฐ์ดํฐ๋ฒ ์ด์ค DATE(๋ ์ง) ๊ฐ๊ณตํ๋ ํจ์ (0) | 2024.05.16 |
MySQL) Reverse, Char_length, Ifnull ํจ์ ์ฌ์ฉํ๊ธฐ (0) | 2024.05.14 |