본문 바로가기

mysql

PK 정보 변경하려는데 오류 나요!!

한 테이블의 PK 정보를 변경하려는데 FK때문에 오류가 발생한다면 아래처럼 FK무시하는 명령어 넣어주면 편하게 작업할 수 있습니다.

 

-- 1. aaaa테이블의 PK 정보 변경 쿼리
Alter table `aaaa`   
change `aaaa_seq` `aaaa_seq` bigint UNSIGNED NOT NULL Auto_increment COMMENT 'aaaa Seq'

 

-- 2. 오류 메시지 : bbbb테이블에서 aaaa테이블에 FK걸려 있어서 오류나는 상황

Cannot change column 'aaaa_seq': used in a foreign key constraint 'FK_aaaa_TO_bbbb_1' of table 'bbbb'

 

이렇게 PK를 다른 테이블들이 참조할 경우 FK를 삭제하고 PK 변경 -> FK생성해야 하는게 기본적인데요.

 

이거 생각보다 손이 많이 갑니다.

 

간단히 할 수 있는 방법은 아래와 같습니다.

 

-- 1. 외래 키 제약 조건 비활성화

SET foreign_key_checks = 0;

 

-- 2. aaaa테이블의 PK 정보 변경 쿼리
ALTER TABLE aaaa
MODIFY COLUMN aaaa _seq bigint UNSIGNED NOT NULL Auto_increment COMMENT ' aaaa Seq';

-- 3. 외래 키 제약 조건 활성화

SET foreign_key_checks = 1;

 

'mysql' 카테고리의 다른 글

MySQL session kill  (0) 2024.05.17
Mysql 테이블명 소문자로 인식시키기  (0) 2023.04.18
Procedure 보기  (0) 2011.08.09
MySQL 내장 함수 정리   (0) 2010.10.19