MySQL 외래 키 제약 검증 해제하기
Disable Foreign Key Constraints in MySQL
MySQL에서 외래 키 제약 조건은 테이블 간의 적절한 관계를 보장함으로써 데이터의 무결성을 유지하는 데 중요한 역할을 합니다. 그러나 데이터를 대량으로 이전하는 등 특정 시나리오에서는 이러한 제약 조건을 일시적으로 비활성화해야 할 필요가 있습니다. 예를 들어, 외래 키 컬럼을 수정하려 할 때 다음과 같은 오류가 발생할 수 있습니다:
console
[HY000][1832] Cannot change column 'parent_id': used in a foreign key constraint 'PARENTS_id_child_id_fk'.
Deactivating Foreign Key Constraints
외래 키 제약 조건 검증을 일시적으로 비활성화하려면 아래 SQL 명령어를 실행하면 됩니다. 이 방법은 데이터베이스 관리 작업을 수행할 때 유용하게 사용할 수 있습니다:
MySQL
set foreign_key_checks = 0;
이 명령은 세션 기반이므로 현재 연결된 세션에서만 외래 키 검증이 비활성화됩니다. 모든 사용자와 세션에 대해 외래 키 검증을 비활성화하고 싶다면 global
키워드를 추가하여 전역적으로 설정할 수 있습니다:
MySQL
set global foreign_key_checks = 0;
Activating Foreign Key Constraints
작업이 완료된 후에는 데이터의 일관성과 무결성을 보장하기 위해 외래 키 제약 조건 검증을 다시 활성화해야 합니다. 다음 명령어를 사용하여 이전 설정을 복원할 수 있습니다:
MySQL
set foreign_key_checks = 1;
set global foreign_key_checks = 1;
이러한 설정은 시스템 재부팅 시 초기화되므로 서버를 재시작한 후에는 다시 설정해야 할 수 있습니다.
- Database
- MySQL