TRUNCATE TABLE 시 AUTO_INCREMENT 컬럼 1로 초기화
3494
2 asked
MySQL이나 H2 에서 TRUNCATE TABLE 시 AUTO_INCREMENT 컬럼값도 1로 초기화되는 걸로 알고 있습니다. 그런데 강의에서는 TRUNCATE 후 AUTO_INCREMENT 컬럼인 ID 를 1부터 다시 시작하게 하는 쿼리를 추가하셔서 어떤게 맞는건지 헷갈립니다
좋은 강의 감사합니다
Answer 1
2
안녕하세요 pgrrr119 님!
말씀해주신대로 MySQL에서 TRUNCATE TABLE을 할 경우 AUTO_INCREMENT 컬럼 값이 초기값으로 재설정되어 AUTO_INCREMENT를 1으로 다시 변경하는 쿼리를 실행할 필요가 없습니다.
https://dev.mysql.com/doc/refman/8.0/en/truncate-table.html
H2는 TRUNCATE TABLE을 실행하더라도 IDENTITY가 기본값으로 재설정되지 않습니다!
https://www.h2database.com/html/commands.html#truncate_table
IDENTITY를 초기화 하기 위해서는 영상에서처럼
ALTER TABLE 'TABLE_NAME' ALTER COLUMN COLUMN_NAME RESTART WITH 1;또는
TRUNCATE TABLE 'TABLE_NAME' RESTART IDENTITY;와 같이 TRUNCATE TABLE 명령어 뒤에 RESTART IDENTITY를 추가해주시면 됩니다!
실제로 ID를 1으로 재설정하는 쿼리를 주석처리하고 전체 테스트를 실행하면 테스트 격리가 안되서
테스트가 실패하는것을 확인하실 수 있습니다!
POJO에서 Spring Test로 넘어갈 때 누락(해결됨)
0
29
1
DatabaseCleanup 코드입니당 필요한 분들 쓰세요
0
125
1
이 방법이 TDD가 맞나요?
0
1108
2
POJO로 개발했는데 비즈니스 로직을 로깅해야 할 경우, 어떻게 해야 할까요?
0
336
1
generate -> add Dependency 이 메뉴가 안보이던데, 어떻게 보이게할까요?
0
352
1
실무 Asserta 사용여부가 궁금합니다.
0
454
1
테스트 코드 내의 지역변수를 final로 선언하는 이유가 궁금합니다.
0
528
1
통합테스트와 단위 테스트
0
964
1
의존성 및 설계? 부분 질문드립니다.
0
399
1
테스트 더블
0
394
1
리뷰반영 강의에서 shortcut ctrl + esc 는 어떻게 설정하나요?
0
482
1
POJO
0
596
1
POJO 상품 등록 기능 구현하기 강의 질문
1
543
1
steps 클래스를 사용하는 이유
0
340
1
랜덤 포트를 사용하는 이유
0
1104
1
상품등록 API 개발, JPA로 변환하기 에서
0
873
2
패키지 구조에 대해서 궁금합니다!
0
645
1
BeforeEach 를 하위 클래스에서 다시 사용하는것에 대해서 질문 드립니다.
1
562
1
ProductService의 updateProduct 로직 질문입니다.
0
556
2
POJO로 개발 후 스프링으로 전환, 이후 JPA 전환하는 이유
4
1283
1
TestRestTemplate 대신에 RestAssured를 사용하는 이유가 있을까요?
0
1187
1
API 테스트로 전환하기
0
1015
1
코드 스타일에 대해서 질문드립니다.
2
1135
1
혹시 강의 중에 나오는 플러그인 좀 알 수 있을까요
0
1218
1

