找出MySQL合并表中包括哪些表

找出MySQL合并表中包括哪些表,mysql,myisam,Mysql,Myisam,我有两个MRG_MyISAM表,它们合并了MySQL数据库中的一组其他表。我想以编程方式找出每个合并表中包括哪些表 我知道我可以运行showcreatetable,然后解析语句的UNION=(tbl1,tbl2)部分,但这似乎有点老套。有更好的办法吗 在理想的世界里,我在寻找这样的东西: SELECT * FROM ?? WHERE merge_table = 'merge_table_1' 这将返回每个行都包含“merge_table_1”中包含的表的名称的行: 我认为INFORMATION

我有两个MRG_MyISAM表,它们合并了MySQL数据库中的一组其他表。我想以编程方式找出每个合并表中包括哪些表

我知道我可以运行
showcreatetable
,然后解析语句的
UNION=(tbl1,tbl2)
部分,但这似乎有点老套。有更好的办法吗

在理想的世界里,我在寻找这样的东西:

SELECT * FROM ?? WHERE merge_table = 'merge_table_1'
这将返回每个行都包含“merge_table_1”中包含的表的名称的行:


我认为
INFORMATION\u SCHEMA
中没有任何数据可以列出合并表的成员

如果应用程序可以直接访问数据库服务器上的数据目录,则只需读取合并表的
.MRG
文件即可。它是一个可读文件,只列出合并中的表以及任何其他合并表选项

你真的不应该再使用合并表了。您应该使用MySQL的引擎,它更灵活。使用分区表,您可以查询
信息\u SCHEMA.PARTITIONS
表以查找每个分区的信息


事实上,您也不应该使用MyISAM表。InnoDB更具可扩展性,MyISAM不支持ACID的任何属性。

SHOW CREATE TABLE\u name--看看这是否为您提供了有关InnoDB和分区的信息

。可悲的是,我不是问题数据库的管理员,只是一个必须与之合作的人。
--------------
| table_name | 
--------------
| tbl1       |
--------------
| tbl2       |
--------------