//기존 컬럼에 자동증가 속성 및 pk 추가
ALTER TABLE table_name MODIFY coulmn_mame INT NOT NULL AUTO_INCREMENT PRIMARY KEY;
//기존 컬럼에 자동증가 속성 추가
ALTER TABLE table_name MODIFY coulmn_mame INT NOT NULL AUTO_INCREMENT;
//자동속성값 초기화
ALTER TABLE table_name AUTO_INCREMENT =1;
//자동속성 및 pk값을 갖는 신규컬럼 추가
ALTER TABLE table_name ADD COLUMN coulmn_mame INT(9) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
//자동속성 값을 갖는 신규컬럼 추가
ALTER TABLE table_name ADD COLUMN coulmn_mame INT(9) NOT NULL AUTO_INCREMENT;
//특정 컬럼뒤에 컬럼 추가
ALTER TABLE table_name ADD new_coulmn_mame varchar(10) AFTER old_coulmn_mame ;
추가참고 (AUTO_INCREMENT)
개념
특정 데이터는 구분자가 되기위해 PK(Primary key) 설정을 한다.
PK의 특징은 고유성(유니크)을 가져야하기 때문에 똑같은 데이터를 넣을 수 없다.
그래서 보통 PK를 int 타입으로 겹치지않게 인덱스(정수값)를 계속 올린다.
그때 그 인덱스(정수값)를 체크해 자동으로 올려주는 옵션이 바로 AUTO_INCREMENT이다.
자동으로 올려주는 옵션
자동으로 올려주는 옵션
한번 설정 해두면 Insert into 할 때 마다 자동으로 값을 올려준다.
조건
기본키(Primary Key)에만 옵션 부여가 가능하다.
문법
테이블 생성시 옵션 부여
CREATE TABLE auto_test(
id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(64));
이미 생성한 테이블에 옵션 추가 - Command
ALTER TABLE auto_test MODIFY id INT NOT NULL AUTO_INCREMENT;
이미 생성한 테이블에 옵션 추가 - GUI (HeidiSQL 10.2.0.5599 version)
라디오 버튼 체크하고 밑에 저장을 눌러주면 된다.
AUTO_INCREMENT 초기화
개념
AUTO_INCREMENT을 사용하다가 1~5번까지의 데이터를 넣어뒀다가
2~5번 데이터를 지우고 데이터를 다시 생성(insert)해보면 다시 2~5번 키의 데이터가 생성되는게 아니라
5~8번의 키를 가진 데이터가 생성된다.
이 값을 다시 2~5번 데이터로 넣고 싶을 땐 초기화를 해줘야한다.
문법
ALTER TABLE [TABLE] AUTO_INCREMENT = [시작 값];
주의 : 테이블에 새로 시작할 값보다 높은 값이 있으면 안됩니다.
AUTO_INCREMENT 값을 초기화 후, 테이블 안의 모든 데이터의 ID값을 재조정 하기
무슨 말이냐 하면, 데이터 1000개가 존재하는데 많이 삭제됬다가 다시 생성되고 해서 첫번 째 데이터가 2000 or 10000 이런식으로 높게 존재할 경우
다시 1000개의 데이터를 1~1000번의 키를 가질 수 있게 하는 방법이다.
문법
ALTER TABLE tableName AUTO_INCREMENT=1;
SET @COUNT = 0;
UPDATE tableName SET auto_id(auto 설정한 컬럼) = @COUNT:=@COUNT+1;
-------------------------------------------------------------------
# 위에가 안되는 경우
UPDATE tableName SET tableName.설정한 컬럼명 = @COUNT: = @COUNT + 1;
Auto Increment 값 확인
Show table status where name = '테이블명'
'코딩 | 개념 정리 > MySQL' 카테고리의 다른 글
[Mysql] export 시도 중 secure_file_priv 문제 발생!! (0) | 2021.02.05 |
---|---|
[Mysql] query로 export하는 방법 정리 (0) | 2021.02.05 |
Mysql join 총정리 (0) | 2021.01.13 |
Mysql 서버에서 직접 export, import (0) | 2021.01.12 |
Mysql 테이블 데이터 지우기 Delete / Truncate (0) | 2021.01.11 |