일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 지진
- 백준 1000번 c
- oracle
- 백준 1000번 java
- RETURN ROW IF NO DATA FOUND
- 2020 펭수 달력
- 백준 1000번 c++
- 티스토리 초대장 이벤트
- 백준 10950번 c
- 이클립스 알고리즘 세팅
- JavaScript
- 백준 10951번 java
- 백준 10951번 c++
- 백준 10950번
- nodejs
- 백준 10951번 c
- 배열 복사
- 백준 10951번
- 백준 10950번 java
- 이클립스 알고리즘 환경
- 펭수 2020 달력
- 백준 1000번
- 자바스크립트
- 백준10950번 c++
- Eclipse Althrithm
- 펭수 달력
- 백준 알고리즘
- 오라클
- 티스토리 초대장
- 포항 지진
- Today
- Total
스노우보드 참 좋아하는데 맨날 키보드 앞에만 있네
AUTO_INCREMENT 초기화 및 재정렬 본문
Mysql Workbench에서 AUTO_INCREMENT 초기화 및 재정렬
Mysql Workbench에서 AUTO_INCREMENT를 이용하여 데이터 추가 시 인덱스를 자동으로 부여하도록 설정할 수 있다.
미리 생성해놓은 USER 테이블에 데이터를 추가해주기 위해 INSERT 문을 13번 실행했다.
1 2 3 | insert into user (user_name, user_email, user_password, user_profileImagePath, user_sex, user_age, user_job, user_phoneNumber) values("홍길동", "mm@naver.com", "qqqq1111", "/image/userProfile/myPhoto.jpg", 1, 30, "프로그래머", 1011119999); |
아래와 같이 데이터가 추가된다.
여기서 user_id=10,11,12,13 튜플들을 삭제한 후 INSERT 문을 1회 실행하면 어떻게 될까?
1 2 3 4 5 6 7 | delete from user where user_id=10; delete from user where user_id=11; delete from user where user_id=12; delete from user where user_id=13; insert into user (user_name, user_email, user_password, user_profileImagePath, user_sex, user_age, user_job, user_phoneNumber) values("홍길동", "mm@naver.com", "qqqq1111", "/image/userProfile/myPhoto.jpg", 1, 30, "프로그래머", 1011119999); |
결과
user_id가 10이 아닌, 14부터 시작된다.
AUTO_INCREMENT은 자동으로 초기화 되지 않는다는 것을 알 수 있다.
따라서 순서대로 데이터를 정렬하기 위해서 정렬 후 초기화 작업을 해주어야 한다.
AUTO_INCREMENT가 적용된 컬럼값 재정렬
컬럼값을 정렬하기 위해서 아래와 같이 처리해준다.
1 2 | SET @CNT = 0; UPDATE USER SET USER.user_id = @CNT:=@CNT+1; |
SET @CNT = 0; UPDATE 테이블명 SET 테이블명.컬럼이름 = @CNT:=@CNT+1; |
AUTO_INCREMENT가 적용된 컬럼값 초기화
새로 데이터를 추가할 때, 본인이 원하는 인덱스부터 데이터를 생성되게 하려면 AUTO_INCREMENT를 초기화 해주면 된다.
위의 예제에서 user_id가 10부터 생성되게 하려면, 다음과 같은 sql문이 필요하다.
ALTER TABLE USER AUTO_INCREMENT = 10;
ALTER TABLE 테이블명 AUTO_INCREMENT=원하는순서; |
그러나 위에서 user_id = 14 인 데이터가 남아 있으므로 에러가 발생한다.
따라서 user_id = 14 인 데이터를 user_id = 10으로 수정해 준 수 AUTO_INCREMENT를 11부터 시작하도록 설정해주어야 한다.
그리고 AUTO_INCREMENT를 다시 초기화 해주면 된다.
최종결과
'개발 > Oracle SQL' 카테고리의 다른 글
ORACLE Synonym (0) | 2018.07.18 |
---|---|
ORACLE XE에서 8080 포트번호 변경방법, 톰캣 충돌 시 해결방법 (1) | 2018.06.19 |
데이터베이스 정규화 (0) | 2018.06.01 |
Mac OS에서 인코딩 UTF-8 설정하기 (한글 깨질 때 해결방법) (0) | 2017.12.04 |
UPDATE 쿼리문 실행시 ERROR CODE 1175 (0) | 2017.11.28 |