์์ ์๊ฐ์ TEST ์ผ์ด์ค๋ค์ ํ๋์ฉ ํด๋ณด๋ ์ค ํ ์ด๋ธ์ ๋ด์ฉ์ ๋งค๋ฒ ์ญ์ ํ๊ณ ๋ค์ ํ๊ธฐ ํ๋ค์ด์ truncate ๊ธฐ๋ฅ์ ๋ฐ๋ก ๊ตฌํํ์๋ค.
๊ทธ๋ ๋ค๋ฉด ๊ทธ๋ฅ delete ๋ฅผ ์ฌ์ฉํด๋ ๋์ง ์๋? ์ถ๊ธฐ๋ ํ๋ฐ truncate ์ delete ๋ ์ฌ๋ฌ ์ฑ์ง์์ ์ฐจ์ด์ ์ ๋ณด์ธ๋ค.
๋จผ์
TRUNCATE๋ DDL, DELETE ๋ DML ์ด๋ค.
DDL(Data Definition Language)์ ๋ฐ์ดํฐ๋ฅผ ์ ์ํ๋ ์ธ์ด๋ก์ CREATE, ALTER, DROP๋ฌธ๊ณผ ๊ฐ์ ๊ฒ๋ค์ด ์๊ณ , DML(Data Manipulation Language)์ ๋ฐ์ดํฐ ์กฐ์ ์ธ์ด๋ก์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ๋ SELECT, INSERT, UPDATE, DELETE๋ฌธ๊ณผ ๊ฐ์ ๊ฒ๋ค์ด ์๋ค.
์ฌ์ค ์์ ๋ด์ฉ์ ๊ฐ๋ ์ ์ธ ๊ฒ์ด๊ณ , ์๋ ๊ทธ๋ฆผ์ด ์ดํด์ ๋์์ด ๋ ์ ์์ ๊ฒ ๊ฐ๋ค.

DELETE ๋ ์์ ํ ์ญ์ ๊ฐ ์๋๊ธฐ์ auto increament ์ ๊ฐ์ ์ฑ์ง๊น์ง๋ ์ด๊ธฐํ๋์ง ์๋ ๋ฐ๋ฉด TRUNCATE ๋ ํ ์ด๋ธ ์ฉ๋์ด ์ค์ด๋ฌ๊ณผ ๋์์ ์ธ๋ฑ์ค๊น์ง ์ญ์ ๋๋ฏ๋ก auto increament ๊ฐ ๋ค์ 1๋ถํฐ ์์๋๊ฒ ๋๋ค. ์ง์ DB ๋ฅผ ํตํด ํ์ธํด๋ณด๋ฉด ์ข์ง๋ง truncate ์ค๋ฅ ํด๊ฒฐ์ ์ํด ์์ฑํ๋ ๊ธ์ด๋ฏ๋ก ์ค๋ฅ ๋ด์ฉ์ ์ง์คํด๋ณด๊ณ ์ ํ๋ค.
TRUNCATE ์ ๊ฒฝ์ฐ ์ ํ ์กฐ๊ฑด์ด ์กด์ฌํ๋ค. ์ธ๋ํค๊ฐ ์กด์ฌํ ๊ฒฝ์ฐ ์คํ ๋ถ๊ฐ๋ฅํ๋ค. ์์๋ก ํ์ธํด๋ณด๋๋ก ํ์.
์๋์ ๊ฐ์ด ์ง๋ฌธ ๊ฒ์ํ์ด ์๋ค๊ณ ํ ๋ ์ด์ ๋ํด question ๊ณผ answer ํ ์ด๋ธ 2๊ฐ ๊ฐ ์กด์ฌํ๋ค๊ณ ํด๋ณด์.


์ด๋ Question ๊ณผ Answer ์ ๊ด๊ณ๋ 1 : N ์ด๋ค. ์ง๋ฌธ ํ๋์ ์ฌ๋ฌ ๊ฐ์ ๋ต๋ณ์ด ๋ฌ๋ฆด ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ํ๋ก์ ํธ ์ํ์ค์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ๋ ์ด ๋ฌธ์ ๋๋ฌธ์ด์๋ค. ๋จ์ trucate ๋ช ๋ น์ด๋ง ์ํํ๋ ค๊ณ ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.

์ ์ฌ์ง์์ ์ด๋ ต์ง ์๊ฒ foreign key contraint ์ด๋ผ๋ ๋จ์ด๋ฅผ ํ์ธํ ์ ์๋ค. ์์ธํ๊ฒ ๋ฌด์จ๋ด์ฉ์ธ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ธ๋ํค ์ ํ ๋๋ฌธ์ธ ๊ฒ์ ๋ถ๋ช ํด๋ณด์ธ๋ค. ์ ์๋ฌ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ํฌ๊ฒ ๋๊ฐ์ง ์ด๋ค.
- ์ธ๋ํค ์์ฒด๋ฅผ ์ญ์ ํด๋ฒ๋ฆฐ๋ค.
- truncate ๋ฅผ ์ํํ ๋๋ง ์ ์ ์ธ๋ํค ์ค์ ์ ๊บผ๋์๋ค๊ฐ ์ํ์ด ๋ค์ ํจ๋ค.
์๋ฌด๋๋ ์ฒซ๋ฒ์งธ ๋ฐฉ๋ฒ์ ๋ง์ด ์ํํด ๋ณด์ด๋ฏ๋ก ๋๋ฒ์งธ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํ๊ธฐ๋ก ํ๋ค.
๋ฐฉ๋ฒ์ ์ฐพ์๋ณด๋ ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ ์ฐพ์๋ค.
@Transactional
@Modifying
@Query(
value = "SET FOREIGN_KEY_CHECKS = 0",
nativeQuery = true
)
void disableForeignKeyChecks();;
@Transactional
@Modifying
@Query(
value = "truncate (์คํํ๊ณ ์ ํ๋ ํ
์ด๋ธ๋ช
)",
nativeQuery = true
)
void truncate();
@Transactional
@Modifying
@Query(
value = "SET FOREIGN_KEY_CHECKS = 1",
nativeQuery = true
)
void enableForeignKeyChecks();
์ ์ฝ๋๋ฅผ ๋ฆฌํฌ์งํฐ๋ฆฌ ํ์ผ์ ์ถ๊ฐํ๊ณ ์คํ์์ผ๋ณด์๋๋ ์ ์๋ํ์๋ค.
'Spring Boot ๐ฟ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| (Spring) Spring Boot DevTools ์ฌ์ฉ๋ฒ (์๋ฒ ์ฌ์คํ ์์ด ์ฝ๋ ์์ ํ์ธ) (0) | 2022.10.06 |
|---|---|
| (Thymeleaf) DB๊ฐ์ผ๋ก๋ถํฐ ์ฒดํฌ๋ฐ์ค ์ฒดํฌ ์ฌ๋ถ ์ ํ (0) | 2022.09.27 |
| (Spring) @PreAuthorize ์ฌ์ฉ๋ฒ (0) | 2022.08.22 |
| (Spring) ๋น๋๊ธฐ ์ฒ๋ฆฌ ๊ตฌํ 1 (0) | 2022.08.21 |
| (Spring) DAO, DTO ๊ทธ๋ฆฌ๊ณ VO (0) | 2022.07.31 |