2012-03-21 7 views
0

私はデータベースとしてMySQLを使用してPHP Webベースのデータ入力ツールを開発しています。しかし、データ入力が行われている間は、データベースは間違いなく変更されます(これを実行するには多くのことがありますので、他の開発と並行して実行しています)。PHPデータベースの変更に対するMySQLのクエリ

PHPが自動的にできるように、私は、SQLクエリを構築しています

  1. データエントリが使用するだけのものとなるよう、データベースに特定の接頭辞を持つ
  2. 一覧表であるかのテーブルを決定しかし

に記載されています、私は(PHP、SQLおよびMySQLのマニュアルやチュートリアルをチェックするにもかかわらず)を把握カント何がどのように自動的に外部キーで接続されたテーブルをプルします。その結果、データ入力には、指定されたテーブルから選択する項目のリストが表示されます。だから、要するに、どのように私はない - PHPを使用しては - 決定:

  1. する外部キーを指定したテーブル
  2. テーブル名のために懸命にWITHOUT外部キーポイントに

こと任意のテーブル名を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を使用すると、古いバージョンのMySQLの外部キー情報を抽出するのに便利です。

私は上記の2つの方法以外の方法を知らないです。

ハッピーコーディング!

+0

非常に迅速な対応をありがとうございました。私は今試してみる。 –

関連する問題