我正在寻找一个方法或一个查询来检索在一个过程中使用的所有表。
我尝试了information_schema.routines,但是它包含了一个过程的所有定义。
是否有任何系统表包含这方面的依赖关系?
或者如何使用其他语言(如Python )从定义中获取表名?
非常感谢!!
发布于 2022-05-09 03:08:05
当前版本的MySQL没有在INFORMATION_SCHEMA中实现这样的视图。
MySQL 8.0.13添加了I_S.VIEW_TABLE_USAGE,它允许您查找视图使用的表。这是为WorkLog #11864做的。WorkLog注意到与PostgreSQL和Microsoft的兼容性。
但是,我无法为假设的WorkLog表找到任何I_S.ROUTINE_TABLE_USAGE。我检查了PostgreSQL,它有这样的视图:https://www.postgresql.org/docs/current/infoschema-routine-table-usage.html,但MySQL没有。
因此,要自动获取这些信息,您必须查询过程主体,并将其解析为表引用。这可不是件容易的事。
https://stackoverflow.com/questions/72166390
复制相似问题