답변:
질문에서 수행 한 방식을 설정하면 세션 기반입니다.
https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html
이것에 따르면, FOREIGN_KEY_CHECKS
범위는 "모두"입니다. 이것은 세션에 대해 설정할 수 있음을 의미합니다.
SET FOREIGN_KEY_CHECKS=0;
또는 전 세계적으로 :
SET GLOBAL FOREIGN_KEY_CHECKS=0;
실제로 foreign_key_checks
전역 변수와 로컬 (세션 당) 변수라는 두 가지 변수 가 있습니다 . 연결되면 세션 변수는 전역 변수의 값으로 초기화됩니다.
이 명령 SET foreign_key_checks
은 세션 변수를 수정합니다.
전역 변수를 수정하려면 SET GLOBAL foreign_key_checks
또는을 사용하십시오 SET @@global.foreign_key_checks
.
다음 매뉴얼 섹션을
참조 하십시오 . http://dev.mysql.com/doc/refman/5.7/en/using-system-variables.html
http://dev.mysql.com/doc/refman/5.7/en/server -system-variables.html
foreign_key_checks
동일한 세션에서 외래 키 제약 조건을 무시할 것으로 예상 한다는 것을 의미합니다 . 비전 역 변수를 설정해야합니다.
Ron이 설명했듯이 local과 global이라는 두 가지 변수가 있습니다. 지역 변수는 항상 사용되며 연결시 전역 변수와 동일합니다.
SET FOREIGN_KEY_CHECKS=0;
SET GLOBAL FOREIGN_KEY_CHECKS=0;
SHOW Variables WHERE Variable_name='foreign_key_checks'; # always shows local variable
GLOBAL 변수를 설정하면 기존 연결에 대해 로컬 변수가 변경되지 않습니다. 로컬 변수도 다시 연결하거나 설정해야합니다.
직관적이지 않은 MYSQL은 FOREIGN_KEY_CHECKS를 다시 활성화 할 때 외래 키를 적용하지 않습니다. 따라서 외래 키와 검사가 켜져 있어도 일관성이없는 데이터베이스를 만들 수 있습니다.
외래 키가 완전히 일관되게하려면 확인이 켜져있는 동안 키를 추가해야합니다.
Drupal 데이터베이스를 새로운 로컬 아파치 서버로 마이그레이션하려고 할 때 동일한 오류가 발생했습니다 (Windows 시스템에서 XAMPP를 사용하고 있습니다). 실제로이 오류의 의미를 모르지만 아래 단계를 시도한 후 오류없이 데이터베이스를 가져 왔습니다. 이것이 도움이되기를 바랍니다.
C : \ xampp \ php \ php.ini에서 php.ini 변경
max_execution_time = 600
max_input_time = 600
memory_limit = 1024M
post_max_size = 1024M
C : \ xampp \ mysql \ bin \ my.ini에서 my.ini 변경
max_allowed_packet = 1024M
Mysql 쿼리 브라우저를 사용하는 경우 SET FOREIGN_KEY_CHECKS=0;
버전 1.1.20에 영향을 미치지 않습니다. 그러나 Mysql 쿼리 브라우저 1.2.17에서는 제대로 작동합니다.