728x90
반응형
MySQL에서는 오라클의 시퀀스와 같은 역할을 auto_implement가 할 수 있다.
컬럼에서 auto_implement를 사용하기 위해서는 타입이 정수(INT) 이고,
기본키(Primary Key)로 지정되어 있어야 한다.
auto_implement를 설정해두면 insert문으로 데이터가 입력 될 때마다 자동으로 값을 올려주는 역할이다.
1. auto_implement 생성하기
테이블을 생성하면서 auto_implement
CREATE TABLE member (
midx int not null primary key auto_increment,
name varchar(20),
phone varchar(20) not null,
delyn char(1) default 'N'
);
생성된 테이블에 auto_implement 추가
(auto_implement를 추가하는 컬럼은 int타입에 PK를 가지고 있어야 한다.)
--/CREATE TABLE member (
-- midx int not null primary key,
-- name varchar(20),
-- phone varchar(20) not null,
-- delyn char(1) default 'N'
--);
ALTER TABLE member MODIFY midx int AUTO_INCREMENT;
2. auto_implement 사용하기
사용방법은 아주 간단하다. auto_implement가 적용된 컬럼은 제외하고 데이터를 넣어주면, 마치 default 값이 자동으로 입력되는 것과 비슷하게, 자동으로 +1씩 증가하면서 데이터가 입력이 된다.
insert into member (name,phone) values ('지민','010-0000-0000');
insert into member (name,phone) values ('리나','010-1200-2300');
select * from member;
3. auto_implement 수정하기
auto_implement의 시작값 변경하기
alter table [테이블명] auto_increment=[시작값];
alter table member auto_increment=10;
auto_implement의 증가값 변경하기
SET @@auto_increment_increment=[증가값];
SET @@auto_increment_increment=10;
auto_implement의 초기화
테이블의 데이터를 삭제하고 새로운 데이터를 넣었지만 midx(auto_implement)의 값은 그대로 쭉~ 증가하고 있는 것을 확인 할 수 있다. 이때 auto_implement를 다시 1부터 증가하게 초기화 하는 방법입니다.
기존의 데이터가 있다면 auto_implement로 들어갔던 값을 1부터 재정렬한다.
ALTER TABLE [테이블명] AUTO_INCREMENT=1;
SET @COUNT = 0;
UPDATE [테이블명] SET [컬럼명] = @COUNT:=@COUNT+1;
ALTER TABLE member AUTO_INCREMENT=1;
SET @COUNT = 0;
UPDATE member SET midx = @COUNT:=@COUNT+1;
이미 들어가 있는 데이터의 다음 번호부터 auto_implement의 시작값을 설정해준다.
alter table member auto_increment=2;
그리고 데이터를 넣어보면 다시 순서대로 증거하면서 데이터가 입력되는 것을 확인 할 수 있다.
728x90
반응형
'Database > MySql' 카테고리의 다른 글
MySQL / 컬럼 제약조건 추가,삭제 ( PRIMARY KEY,FOREIGN KEY ) (0) | 2021.07.26 |
---|---|
MySQL 컬럼명 , 타입 변경, 기본값 추가&수정, 추가, 삭제 (0) | 2021.07.26 |
MySQL / 컬럼 추가, 수정, 삭제 / Insert, Update, Delete (0) | 2021.07.22 |