catsridingCATSRIDING|OCEANWAVES
Data

MySQL 외래 키 제약 검증 해제하기

jynn@catsriding.com
Oct 31, 2023
Published byJynn
999
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