한 테이블의 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 |