gpt4 book ai didi

mysql - 找出 MySQL 合并表中包含哪些表

转载 作者:行者123 更新时间:2023-11-29 13:02:56 25 4
gpt4 key购买 nike

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

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

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

SELECT * FROM ?? WHERE merge_table = 'merge_table_1'

这将返回每行都包含“merge_table_1”中包含的表名称的行:

--------------
| table_name |
--------------
| tbl1 |
--------------
| tbl2 |
--------------

最佳答案

我认为 INFORMATION_SCHEMA 中没有任何数据来列出 MERGE 表的成员。

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

您确实不应该再使用 MERGE 表。你应该使用MySQL的PARTITIONING引擎,更加灵活。对于分区表,您可以查询 INFORMATION_SCHEMA.PARTITIONS 表以查找每个分区的信息。

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

关于mysql - 找出 MySQL 合并表中包含哪些表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23089931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com