작성
·
2.9K
1
MySQL이나 H2 에서 TRUNCATE TABLE 시 AUTO_INCREMENT 컬럼값도 1로 초기화되는 걸로 알고 있습니다. 그런데 강의에서는 TRUNCATE 후 AUTO_INCREMENT 컬럼인 ID 를 1부터 다시 시작하게 하는 쿼리를 추가하셔서 어떤게 맞는건지 헷갈립니다
좋은 강의 감사합니다
답변 1
1
안녕하세요 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으로 재설정하는 쿼리를 주석처리하고 전체 테스트를 실행하면 테스트 격리가 안되서
테스트가 실패하는것을 확인하실 수 있습니다!
친절한 답변 감사드립니다!!
공식 문서까지 찾아주시다니.. 감동입니다..
제가 잘못 알고 있었군요
역시 GPT 보단 공식 문서를 봐야겠네요
다시 한번 감사드립니다