Auto_Increment로 잡아놓은 gid가 잘 잡혀있는 상황이다.
gid가 4인 람머스를 지워보자
delete from goods where gid = 4
문도를 goods에 입력해보자.
insert into goods (gname, gcontent, gcnt, getc) values ('문도','라면먹는다', 40,'두번먹는다');
중간에 빠진 4부터 gid가 들어가는 것이 아닌 13으로 시작하는 모습이다.
(12부터 시작해야 하지만 미리 테스트하느라 auto_increment값이 13인 상황이었다.)
그럼 어떻게 초기화 해야할까?
-- delete로 auto_increment한 gid값의 중간이 비었을 경우
-- 다시 재정렬 해주는 sql문
-- safety 해제 (쉽게말해 한번에 여러 row 를 업데이트할 때, 막아두는게 Safe mode On 입니다.)
set sql_safe_updates=0;
-- cnt 변수 초기화
set @cnt = 0;
-- cnt를 이용해서 gid를 처음부터 ++ 해가면서 초기화
update goods set goods.gid = @cnt:=@cnt+1;
gid가 잘 정리된 모습이다.
하지만 여기서 auto_increment의 시작값을 재 조정해줄 필요가 있다.
현재 gid의 최대값을 구하고 이를 바탕으로 +1 된 값으로 바꿔주면 끝이난다.
Alter table goods auto_increment = 12;
이제 임의로 입력값을 넣어 마무리 확인을 하자.
12부터 잘 들어가는 모습이다.
다시 safety mode를 on으로 바꿔주고 마무리 하자.
set SQL_SAFE_UPDATES = 1;
'DataBase' 카테고리의 다른 글
오라클 11g Enterprise Edition Download (0) | 2023.07.12 |
---|---|
SQL과 NoSQL의 종류와 장단점 (0) | 2023.04.06 |
DB 관련 내용 참고 사이트 (0) | 2022.12.02 |
[Mysql] Mysql 8.0 버전 설치하기 (0) | 2022.12.01 |
[Oracle] 1장. 데이터 베이스 개념 잡기 (1-3 오라클 데이터베이스와 도구 프로그램 설치) (0) | 2022.11.29 |