2012-03-21 3 views
0

데이터베이스로 MySQL을 사용하는 PHP 웹 기반 데이터 입력 도구를 개발 중입니다. 그러나 데이터 입력이 진행되는 동안 데이터베이스는 의심의 여지없이 변경 될 것입니다 (많은 개발 작업이 수행되어 다른 개발과 동시에 실행되도록 시작했습니다).데이터베이스 변경에 대한 PHP MySQL 쿼리

PHP는 자동으로 할 수 있도록 제가 SQL 쿼리를 구축 한

:

  1. 는 유일한 사람이 데이터 입력을 사용해야 그 있도록 특정 접두사와
  2. 목록 테이블이 데이터베이스에 어떤 테이블 결정 그러나

나열되어, 내가 (PHP, SQL과 MySQL의 매뉴얼과 튜토리얼을 확인에도 불구하고) 파악하지 못할 어떤 방법에 자동적으로 외래 키로 연결된 테이블을 당겨서 데이터 입력이 주어진 테이블에 대해 선택할 항목 목록을 갖도록합니다. 그래서 짧은에, 어떻게합니까 - PHP를 사용하여이 - 결정 :

  1. 모든 외부 키를 주어진 테이블
  2. 테이블 이름을 하드없이 외래 키 포인트

그 모든 테이블 이름을 SQL 쿼리로 코딩합니까?

+0

ManseUK, 변경해 주셔서 감사합니다. 나는 그들이 나의 글을 더 읽기 쉽게 만들어 줄 것을 볼 수 있으며 나는 미래에 주석 블록에리스트를 두는 것을 잊지 않을 것이다! –

+0

http://stackoverflow.com/questions/1143728/how-can-i-find-which-tables-reference-a-given-table-in-oracle-sql-developer – zod

답변

0

빠른 방법은 KEY_COLUMN_USAGE보기를 사용하여 외래 키 참조를 나열하려면 다음

SELECT CONCAT(table_name, '.', 
column_name, ' -> ', 
referenced_table_name, '.', 
referenced_column_name) AS list_of_fks 
FROM information_schema.KEY_COLUMN_USAGE 
WHERE REFERENCED_TABLE_SCHEMA = (your schema name here) 
AND REFERENCED_TABLE_NAME is not null 
ORDER BY TABLE_NAME, COLUMN_NAME; 

이 쿼리는 제약과 모든 참조와 참조 테이블이 같은 스키마에 있다고 가정 않습니다.

InnoDB 테이블의 경우, SHOW TABLE STATUS의 Comment 필드를 사용하면 이전 버전의 MySQL에 대한 외래 키 정보를 추출하는 데 유용합니다.

나는 위의 두 가지 방법 이외의 다른 방법을 알지 못합니다.

해피 코딩!

+0

매우 빠른 응답을 보내 주셔서 감사합니다. 나는 그것을 지금 시도 할 것이다. –