programing

phpMyadmin에서 외부 키 열에 대한 인덱스를 삭제할 수 있습니다.

powerit 2023. 8. 21. 21:40
반응형

phpMyadmin에서 외부 키 열에 대한 인덱스를 삭제할 수 있습니다.

MySQL 테이블에 다음과 같은 외부 키가 정의되어 있다고 가정합니다.

enter image description here

또한 MySQL은 외부 키 열에 필요한 인덱스를 자동으로 생성합니다.

enter image description here

이제 이 페이지에서 외부 키 열에 대한 인덱스를 삭제하려고 하면 phpMyAdmin이 먼저 삭제하고 삭제합니다.쿼리 로그에 따르면 다음과 같은 결과가 수행됩니다.

SET FOREIGN_KEY_CHECKS = OFF
ALTER TABLE `bank_accounts` DROP INDEX `currency`
SET FOREIGN_KEY_CHECKS = ON

그런 다음 인덱스가 테이블에서 사라지면 외부 키 제약 조건이 일관되지 않은 상태로 유지됩니다.이와 관련하여 몇 가지 질문이 있습니다.

  • 열에 인덱스가 없는 외부 키 제약 조건이 있는 이유가 있습니까?
  • phpMyAdmin에서 이 동작을 허용하지 않는 방법이 있습니까?

phpMyAdmin v5.2.0에서 테스트되었습니다.

업데이트: 이 문제는 검사가 비활성화된 상태에서 외부 키 열에 대한 인덱스를 제거할 수 있기 때문에 MariaDB와 관련이 있는 것 같습니다(버전 10.9에서 테스트됨).MySQL 8.0에서는 이를 허용하지 않습니다.phpMyAdmin이 인덱스 삭제를 시도하기 전에 외부 키 검사를 비활성화하는 이유는 여전히 불분명합니다.

언급URL : https://stackoverflow.com/questions/74924122/phpmyadmin-allows-to-drop-indexes-for-foreign-key-columns

반응형