특정 열을 참조하는 외래 키가 있는 테이블 찾기
관계형 데이터베이스에서는 테이블이 다른 열을 참조하는 외래 키를 갖는 것이 일반적입니다. 테이블의 기본 키. 이를 통해 엔터티 간의 관계가 설정되고 시행될 수 있습니다. 그러나 특정 열을 참조하는 외래 키가 있는 테이블을 확인하는 것은 어려울 수 있습니다.
이 문제를 해결하기 위해 지정된 테이블의 열을 참조하는 외래 키가 있고 실제 값이 있는 테이블을 식별하는 방법을 설명합니다.
다음 예제 데이터베이스 스키마를 고려하십시오.
CREATE TABLE `X` ( `X_id` int NOT NULL auto_increment, `name` varchar(255) NOT NULL, PRIMARY KEY (`X_id`) ); CREATE TABLE `Y` ( `Y_id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `X_id` int DEFAULT NULL, PRIMARY KEY (`Y_id`), CONSTRAINT `Y_X` FOREIGN KEY (`X_id`) REFERENCES `X` (`X_id`) ); CREATE TABLE `Z` ( `Z_id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `X_id` int DEFAULT NULL, PRIMARY KEY (`Z_id`), CONSTRAINT `Z_X` FOREIGN KEY (`X_id`) REFERENCES `X` (`X_id`) );
이 스키마에서 테이블 Y와 Z에는 모두 참조하는 외래 키가 있습니다. 테이블 X의 X_id 열. 이러한 테이블 목록을 검색하고 외래 키에 값이 있는 테이블을 식별하려면:
SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME = 'X' AND REFERENCED_COLUMN_NAME = 'X_id';
이 쿼리는 지정된 테이블을 참조하는 외래 키가 있는 모든 테이블에 대한 정보를 반환합니다. 테이블의 열. 또한 외래 키에 연결된 값이 하나 이상 있는지도 확인합니다.
결과를 특정 데이터베이스로 더 좁히려면 다음 수정된 쿼리를 사용할 수 있습니다.
SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME = 'X' AND REFERENCED_COLUMN_NAME = 'X_id' AND TABLE_SCHEMA = 'your_database_name';
여기서, your_database_name은 테이블이 있는 실제 데이터베이스 이름으로 바꿔야 합니다.
위 내용은 특정 열을 참조하는 외래 키가 있는 테이블을 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!