728x90

2014/08/11 - [DB/MSSQL] - MS-SQL 시퀀스 identity 생성 및 초기화하기


2014/08/11 - [DB/Oracle] - 오라클(Oracle) sequence 생성, 등록, 최종 시퀀스값 조회하기


1. MySQL 시퀀스 생성하기

CREATE TABLE test_board(
  seq INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  title VARCHAR(20) NOT NULL
);

INSERT INTO test_board(title)
VALUES('hello');

INSERT INTO test_board(title)
VALUES('hello2');

INSERT INTO test_board(title)
VALUES('hello3');


위와같이 실행후 SELECT문 실행





확인결과 title 컬럼에만 데이터를 insert 하였는데 seq 컬럼은 자동적으로 값이 증가 하여 

insert 되는것을 확인 할 수 있었다.

위와같이 자동으로 컬럼의 숫자값을 일정하게 증가하고 싶다면 auto_increment 를 시퀀스로 사용할 컬럼에 지정을 해주면 된다.

그럼 이제 모든 데이터를 지우고 다시 같은 insert 쿼리를 동작 후 똑같이 조회를 해보도록 하자 


delete from test_board;

INSERT INTO test_board(title)
VALUES('hello');

INSERT INTO test_board(title)
VALUES('hello2');

INSERT INTO test_board(title)
VALUES('hello3');

데이터를 지우고 다시 같은 내용의 insert 구문을 넣어주었다

다시한번 데이터 조회를 해보도록 하자




위와 같이 seq가 지워진 시퀀스 값에 이어서 자동 증가하는 현상이 발생하였다.


물론 중복이 되지 않으므로 상관은 없으나 모든 데이터를 삭제 후 시퀀스값을 초기화 하길 원할때가 

있으므로 시퀀스를 초기화 해주기로 해보자


2. MySQL 시퀀스 초기화


시퀀스 초기화 하고자 할 경우는 하단의 명령어를 주면 간단하게 시퀀스값이 초기화가 된다.

alter table test_board auto_increment=1;

위와같이 alter table 후 test_board(시퀀스컬럼을 초기화 하고자 하는 테이블명) 을 지정 후 auto_increment=1(자동증가값 update를 해준다)

그럼 초기화가 정상적으로 되는지 임의의 시나리오를 작성하도록 하자


1) test_board의 데이터 모두 delete

2) 시퀀스 초기화 작업(alter table xxx auto_increment=x)

3) 다시한번 insert 쿼리 

4) select 구문을 통화 데이터 확인


위와같이 시나리오를 실행한 결과 다음과 같이 시퀀스 컬럼이 초기화 된 후, 

자동증가하여 컬럼에 추가되는것을 확인 할 수 있었다.






슈퍼맨슈퍼맨슈퍼맨



도움이 되셨다면 공감클릭! 궁금하신점은 댓글!!



출처: http://roqkffhwk.tistory.com/136 [야근싫어하는 개발자]

출처: http://roqkffhwk.tistory.com/136 [야근싫어하는 개발자]

출처: http://roqkffhwk.tistory.com/136 [야근싫어하는 개발자]

출처: http://roqkffhwk.tistory.com/136 [야근싫어하는 개발자]

출처: http://roqkffhwk.tistory.com/136 [야근싫어하는 개발자]

출처: http://roqkffhwk.tistory.com/136 [야근싫어하는 개발자]

출처: http://roqkffhwk.tistory.com/136 [야근싫어하는 개발자]

출처: http://roqkffhwk.tistory.com/136 [야근싫어하는 개발자]

출처: http://roqkffhwk.tistory.com/136 [야근싫어하는 개발자]

+ Recent posts