나는 최근에 넘겨 준 150 개가 넘는 테이블이있는 큰 데이터베이스를 가지고 있습니다. 테이블 단위가 아닌 전체 DB에 대한 모든 외래 키 제약 조건을 볼 수있는 쉬운 방법이 있는지 궁금합니다.전체 MySQL 데이터베이스의 모든 외래 키 제약 조건보기
답변
이 경우 INFORMATION_SCHEMA
테이블을 사용할 수 있습니다. 예를 들어 INFORMATION_SCHEMA TABLE_CONSTRAINTS
테이블입니다. 당신은 단지 하나의 데이터베이스가있는 경우 사용자 RedFilter에 의해
select *
from INFORMATION_SCHEMA.TABLE_CONSTRAINTS
where CONSTRAINT_TYPE = 'FOREIGN KEY'
그게 내가 원하는 것을 가지고있는 것처럼 보입니다. 감사! –
외래 키의 필드 이름을 실제로 나열하는 방법이 있습니까? – JoeTidee
현재 허용 대답은 잘 작동합니다,하지만 당신은 많은이없는 경우이 같은
뭔가를해야한다.
name_of_db
에 대한 외래 키를 얻을 수 use information_schema;
사용이 쿼리를 입력 한 후 :
select * from `table_constraints` where `table_schema` like "name_of_db" and `constraint_type` = 'FOREIGN KEY' into outfile "output_filepath_and_name" FIELDS TERMINATED BY ',' ENCLOSED BY '"';
SQL : 세계 쓰기 가능한 파일 output_filepath_and_name
에 저장 name_of_db
에 대한 외부 키를 얻을 수
select * from `table_constraints` where `table_schema` like `name_of_db` and `constraint_type` = 'FOREIGN KEY'
사용이 쿼리 :
select constraint_name,
table_schema,
table_name
from information_schema.table_constraints
where constraint_schema = 'astdb'
,210
출력 :
+----------------------------+--------------+---------------------+
| constraint_name | table_schema | table_name |
+----------------------------+--------------+---------------------+
| PRIMARY | astdb | asset_category |
| PRIMARY | astdb | asset_type |
| PRIMARY | astdb | asset_valuation |
| PRIMARY | astdb | assets |
| PRIMARY | astdb | com_mst |
| PRIMARY | astdb | com_typ |
| PRIMARY | astdb | ref_company_type |
| PRIMARY | astdb | supplier |
| PRIMARY | astdb | third_party_company |
| third_party_company_ibfk_1 | astdb | third_party_company |
| PRIMARY | astdb | user |
| PRIMARY | astdb | user_role |
+----------------------------+--------------+---------------------+
쿼리 코드
select constraint_name,
table_schema,
table_name
from information_schema.table_constraints
당신은 constraint_name을 얻을, 그리고 database
의 목록입니다 TABLE_SCHEMA를 필터링합니다.
SELECT CONSTRAINT_NAME,
UNIQUE_CONSTRAINT_NAME,
MATCH_OPTION,
UPDATE_RULE,
DELETE_RULE,
TABLE_NAME,
REFERENCED_TABLE_NAME
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
WHERE CONSTRAINT_SCHEMA = 'your_database_name'
이
내가 유용한 정보를 얻을 선호하는 것입니다 모든 외래 키 - 테이블 또는 - 열- 1. 전체 테이블을위한 mysql 외래 키
- 2. 데이터베이스의 외래 키
- 3. SQL의 외래 키 제약
- 4. MySQL 외래 키 제약 조건, 캐스케이드 삭제
- 5. mysql 삭제 및 외래 키 제약
- 6. PHP에서 MySQL 외래 키 제약 조건을 무시하십시오.
- 7. 오류 외래 키 제약
- 8. 인해 외래 키 제약
- 9. 데이터베이스 외래 키 제약
- 10. INFORMATION_SCHEMA보기의 외래 키 제약
- 11. 외래 키 제약 조건 문제
- 12. SQL의 복잡한 외래 키 제약
- 13. 1 : 1 외래 키 제약
- 14. 레일 3 외래 키 제약
- 15. MySQL의 - 조건부 외래 키 제약
- 16. Fluent Nhibernate 외래 키 제약
- 17. 테이블 외래 키에 대한 MySQL 외래 키
- 18. Mysql 외래 키 딜레마
- 19. MySQL의 외래 키 제약 조건이 가능하다 어떻게
- 20. 외래 키 제약 조건의 원인이 사라짐
- 21. MySQL 외래 키 문제
- 22. 외래 키 문제 - mysql
- 23. MySQL - 고유 외래 키
- 24. MySQL 외래 키 질문
- 25. 외래 키 제약 조건이있는 테이블에 행 추가 [MySQL]
- 26. 모든 외래 키 및 제약 조건을 무시한 SQL 행 삭제
- 27. SQL Server 2000의 모든 외래 키 제약 조건을 쿼리하는 쿼리
- 28. 외래 키 제약 조건을 검색하는 방법은 무엇입니까?
- 29. 실행 계획 이상한 외래 키 제약
- 30. MySQL 데이터베이스의 외래 키 관계 설정을위한 도움이 필요합니다.
여기를 참조 앤디의 대답 : https://stackoverflow.com/questions/201621/how-do-i-see-를
Look at This
– omarjebari