我不完全知道我想要什么,但肯定有人有同样的需求,并且以比我更好的方式解决了它:
我正在寻找某种机制来从数据库中提取 mySQL 表的数据定义并允许查询它以获取列列表及其定义,作为动态构造 DML 例程的一部分?让表参数(例如 ENGINE、INDEX 等)也可用也很好。
我们的数据库不是特别先进,而且我当然没有 SQL DDL 的百科全书知识,所以我想出的东西可能对其他人没有多大用处。Perl 中是否已经有一些东西 - 最好是面向对象的 - 可以做到这一点,至少对于 mySQL 而言?
是的,有一个 Perl 包 SQL::Translator,它是名为 SQLFairy 的工具集的一部分。它从 SQL 脚本或实时数据库实例中解析 SQL DDL。它支持多种 RDBMS,包括 MySQL。
然后它提供了进行模式转换、模式差异和其他一些很酷的东西的工具。
我发现文档比大多数 Perl 项目要好,但我仍然必须阅读代码才能了解如何以我想要的方式使用它。
DBI 接口有一组“目录方法”: http: //metacpan.org/pod/DBI#Catalog-Methods。
您可以查看一个类似的 StackOverflow 问题: 如何从 Perl 的 DBI 中获取模式?