임시 데이터 조작을 위해 MySQL에서 외래 키 제약 조건 비활성화
MySQL에서 외래 키 제약 조건은 테이블 간의 관계 불일치를 방지하여 데이터 무결성을 보장합니다. . 그러나 이러한 제약 조건은 때때로 빠른 데이터 조작을 방해할 수 있습니다.
문제:
Django에서 모델의 인스턴스를 삭제할 때 외래 키 제약 조건으로 인해 오류가 발생할 수 있습니다. 예:
cursor.execute("DELETE FROM myapp_item WHERE n = %s", n) transaction.commit_unless_managed() # a foreign key constraint fails here cursor.execute("DELETE FROM myapp_style WHERE n = %s", n) transaction.commit_unless_managed()
해결책:
외래 키 제약 조건을 일시적으로 비활성화하고 삭제를 허용하려면 DISABLE KEYS 명령을 사용하거나 FOREIGN_KEY_CHECKS 변수를 다음으로 설정할 수 있습니다. 0.
DISABLE KEYS 사용:
DISABLE KEYS
이 명령은 현재 세션에 대한 모든 외래 키 제약 조건을 비활성화합니다.
SET 사용 FOREIGN_KEY_CHECKS 변수:
SET FOREIGN_KEY_CHECKS=0;
이 명령은 전역 FOREIGN_KEY_CHECKS 변수를 0으로 설정하여 모든 외래 키 제약 조건을 비활성화합니다.
중요: 원하는 데이터를 수행한 후 조작하려면 FOREIGN_KEY_CHECKS를 다시 1로 설정하여 외래 키 제약 조건을 다시 활성화해야 합니다.
SET FOREIGN_KEY_CHECKS=1;
위 내용은 데이터 조작을 위해 MySQL에서 외래 키 제약 조건을 일시적으로 비활성화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!