본문 바로가기
DB

[MySQL] 외래키로 설정되어 있는 키 속성 변경하기

by 떤떤 2020. 10. 18.

FORUM 테이블과 COMMENT테이블에 외래키로 설정되어 있는 ucode를

AUTO_INCREMENT로 변경하려고 하는데 외래키로 설정되어 있어서

외래키 해제 후 변경한 다음에 다시 외래키 설정을 해줘야한다.

 

 

1. 해당 테이블들 LOCK 걸어주기

LOCK TABLES
USER WRITE,
FORUM WRITE,
COMMENT WRITE;

일단 테이블을 잠궈준다.

 

 

 

2. 외래키 해제

ALTER TABLE FORUM
DROP FOREIGN KEY USER,
MODIFY ucode INT;

FOREIGN KEY 옆에 USER는 외래키 설정할 때 주석같은 건데 잘못 입력했다.

ALTER TABLE COMMENT
DROP FOREIGN KEY COMMENT,
MODIFY ucode INT;

FORUM 테이블과 마찬가지로 잘못 입력했다. FOREIGN KEY 옆에 본인이 설정한 거 입력하면 된다.

 

 

 

3. ucode 속성 변경하기

ALTER TABLE user MODIFY ucode INT AUTO_INCREMENT;

 

 

4. 변경됐는지 확인하기

DESC user;

 

 

5. 외래키 재생성

ALTER TABLE FORUM
ADD CONSTRAINT forum_user_ucode FOREIGN KEY (ucode)
REFERENCES USER (ucode);
ALTER TABLE COMMENT
ADD CONSTRAINT comment_user_ucode FOREIGN KEY (ucode)
REFERENCES USER (ucode);

 

 

6. 잠궜던 테이블 UNLOCK해주기

UNLOCK TABLES;

'DB' 카테고리의 다른 글

sequelize dataTypes  (0) 2021.01.14
[MySQL] 데이터 수정  (0) 2020.11.28
[MySQL] 컬럼 값 더하기  (0) 2020.10.11
[MySQL] ALTER 사용하기  (0) 2020.10.07
[MySQL] 테이블 만들기  (0) 2020.05.20