如何在MySQL数据库中仅查找系统表?

5
我正在尝试查找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;”)
请问如何区分内部(或系统)表和用户创建的表?我们是否有任何查询或系统对象,例如存储过程等等?

INFORMATION_SCHEMA 模式中,您只有服务器的系统表。因此查询是正确的。 - Joe Taras
1个回答

2

以下查询语句中是否漏掉了information_schemaperformance_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

感谢您的回复。但是,建议的查询没有成功 :-(它仍然显示我的用户创建的表。 - raju
尝试一下: SELECT table_schema,table_name FROM information_schema.tables WHERE table_schema IN ('information_schema','performance_schema'); - denny
@denny,这个查询无法满足我的需求,因为我正在寻找'mysql'模式中的系统表。 - raju

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接