检索 MySQL 表注释的最优雅方法是啥?

Posted

技术标签:

【中文标题】检索 MySQL 表注释的最优雅方法是啥?【英文标题】:What's the most elegant way to retrieve a MySQL table comment?检索 MySQL 表注释的最优雅方法是什么? 【发布时间】:2011-04-01 19:30:57 【问题描述】:

我正在尝试以编程方式检索 mysql 表的注释。向我建议的第一种方法是:

$shown = $db->query('show create table ' . TABLE_NAME)->fetch_row();
preg_match("/COMMENT='(.*)'/", $shown[0], $m);
$comment = $m[1];

但这种解决方法让我感到畏缩。我偶然发现了另一种方式:

$result = $db->query("select table_comment from information_schema.tables where table_schema = '" .
    DATABASE_NAME . "' and table_name = '" TABLE_NAME '\'')->fetch_row();
$comment = $result[0];

稍微好一点(没有字符串解析),但它仍然让我感到不舒服,因为我正在挖掘我不属于自己的内部结构。

有没有一种很好、简单的方法来获取代码中的表格注释?

【问题讨论】:

【参考方案1】:

信息架构实际上并不是您不属于的内部结构。它是 ANSI SQL 标准的一部分,其目的是为您提供一种查询元数据的合法方式。

我会毫不犹豫地使用它。

一个缺点是 MySQL 的信息模式实现往往有漂亮的poor performance。因此,在应该快速的例程中运行对 IS 的查询时要小心。

【讨论】:

酷,我不知道它实际上是标准的一部分。尽管如此,如果我能提供帮助,我通常会尽量远离那些看起来过于“元”的东西......它们往往只会让我头疼(比如你链接的性能问题)。 由于您已经为这两种解决方案编写了代码,我鼓励您对它们进行基准测试,看看性能差异是什么,以及您的应用程序是否可以容忍这种差异。

以上是关于检索 MySQL 表注释的最优雅方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

处理空值的最优雅方法是啥

在 Vim 中注释/取消注释 ruby​​ 代码块的最优雅的方式是啥?

将数千条记录插入表中的最有效方法是啥(MySQL,Python,Django)

在 Silverlight 的 SaveFileDialog 中缺少 DefaultFileName 的最优雅的解决方法是啥?

在 C# List 中查找重复项索引的最优雅方法是啥

如果不为空,检查查询字符串参数值的最优雅方法是啥?