【问题标题】:How to find ONLY system tables in MySQL database?如何在 MySQL 数据库中仅查找系统表?
【发布时间】:2016-12-23 10:31:19
【问题描述】:

我正在尝试查找 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;

您能否告诉我如何区分内部(或系统)表和用户创建的表?我们是否有任何查询或系统对象,例如存储过程 ....etc ...?

【问题讨论】:

  • 在架构INFORMATION_SCHEMA 中,您只有服务器的系统表。所以查询是正确的

标签: mysql sql database


【解决方案1】:

下面的查询怎么样,我猜你错过了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

【讨论】:

  • 感谢您的回复。但是建议的查询没有运气:-(它仍然显示我的用户创建的表。
  • 试试 SELECT table_schema,table_name FROM information_schema.tables WHERE table_schema IN ('information_schema','performance_schema');
  • @denny,此查询无法满足我的要求,因为我正在寻找“mysql”模式中的系统表。
猜你喜欢
  • 2019-07-30
  • 1970-01-01
  • 1970-01-01
  • 2012-02-10
  • 2016-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-20
相关资源
最近更新 更多