>데이터 베이스 >MySQL 튜토리얼 >특정 열을 참조하는 외래 키가 있는 테이블을 찾는 방법은 무엇입니까?

특정 열을 참조하는 외래 키가 있는 테이블을 찾는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-16 10:19:10414검색

How to Find Tables with Foreign Keys Referencing a Specific Column?

특정 열을 참조하는 외래 키가 있는 테이블 찾기

관계형 데이터베이스에서는 테이블이 다른 열을 참조하는 외래 키를 갖는 것이 일반적입니다. 테이블의 기본 키. 이를 통해 엔터티 간의 관계가 설정되고 시행될 수 있습니다. 그러나 특정 열을 참조하는 외래 키가 있는 테이블을 확인하는 것은 어려울 수 있습니다.

이 문제를 해결하기 위해 지정된 테이블의 열을 참조하는 외래 키가 있고 실제 값이 있는 테이블을 식별하는 방법을 설명합니다.

다음 예제 데이터베이스 스키마를 고려하십시오.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.