2016-12-23 1 views
2

私はMySQLのシステムテーブル(または内部テーブル)のリストを探しています。 データベース "mysql"には、システムテーブル(MySQLデータベースの内部または専用)とユーザー作成テーブルの両方が含まれています。たとえば、以下のクエリどのようにMySQLデータベース内のシステムテーブルを見つけるには?

SELECT table_name, table_type, engine, TABLE_COMMENT 
    FROM information_schema.tables 
    Where TABLE_SCHEMA = 'mysql' 
    order by engine desc; 

を実行することで

我々は唯一のBASE TABLEとしてすべてのテーブルタイプを取得します。これらのエントリには、私のユーザテーブルも含まれています(たとえば、CREATE TABLE mysql.tst1 (i INT) ENGINE = MYISAM;

内部テーブル(またはシステムテーブル)とユーザ作成テーブルを区別する方法を教えてください。ストアドプロシージャのようなクエリやシステムオブジェクトはありますか?など...?

+0

以下のクエリをチェックしてください。 質問は正しいので –

答えて

1

どのように私はあなたがinformation_schemaを逃したと思います以下のクエリについてとperformance_schema

ので、ご使用のサーバーの唯一のシステムテーブルを持っているINFORMATION_SCHEMA` `スキーマで


SELECT table_name, table_type, engine, TABLE_COMMENT 
    FROM information_schema.tables 
Where 
    TABLE_SCHEMA IN ('mysql','information_schema','performance_schema') 
ORDER BY engine DESC 
+0

お返事ありがとうございます。 しかし、提案されたクエリ:-( とNO運それはまだ私のユーザが作成した表を示し – raju

+0

( 'INFORMATION_SCHEMA'、 'performance_schema')、IN TABLE_SCHEMA INFORMATION_SCHEMA.TABLES FROM table_nameは、TABLE_SCHEMAを選択** それを試してみてください。。** – denny

+0

@denny、 「mysql」スキーマのシステムテーブルを検索しているので、このクエリは自分の要件を満たすことができません。 – raju

関連する問題