본문 바로가기
Programming/DB (SQL)

MySQL에서 AutoIncrement로 변경하기.

by 곰네Zip 2023. 3. 29.

개발을 하다가, 특정 컬럼을 Auto Increment로 변경해야 할 일이 생겼다.

그래서 아무생각없이, 아래와 같이 쿼리를 날렸다.

ALTER TABLE $내테이블명 
	MODIFY COLUMN 
    	$바꾸고자하는컬럼명
        bigint auto_increment NOT NULL;

이러니까.. auto_increment로 쓰려면 PK가 되어야한다고 한다.

음? 근데 이 컬럼명은 키로 사용중인데?

다만, 해당 테이블의 키로 쓰는 컬럼이 두개가 있긴했다. 하나는 non-auto-increment이고, 그녀석이 우선순위가 높을 뿐..

auto_increment가 적용된 컬럼만 key로 사용 가능
auto_increment가 적용된 컬럼을 제외한 다른 컬럼만 key로 사용 불가
key( auto_increment, other )로 key가 정해진 경우 가능
key( other, auto_increment)로 key가 정해진 경우 불가

오호... 이런 제약도 있었구나.

그러면 기존의 key를 변경해야 할듯 하다.

ALTER TABLE 
	$내테이블명
DROP KEY 
	$기존Key이름,
ADD UNIQUE KEY 
	$새로운Key이름 ($auto_increment컬럼명, $다른컬럼명) ;

 위와 같이 쿼리를 실행하면 키를 변경할 수 있다.

그리고 아까 auto_increment 설정 쿼리를 날려주면 됨.

반응형

댓글