如何为mysql查询添加注释,以便它们显示在日志中?

时间:2010-03-16 23:05:35

标签: mysql code-comments

我希望能够在每个查询的开头添加一个小注释,所以当我在进程列表或“mytop”中看到它时,我可以告诉它在哪里运行。

这样的事情可能吗?

2 个答案:

答案 0 :(得分:7)

不确定这会有用,但值得一试。

在正常发送任何SQL查询之前,只需添加"/* some comment or tag */ "即可。

mySQL服务器可能会删除此注释作为其查询分析/准备的一部分,但它也可能只是保留它,因此它在日志和其他监视工具中显示。

如果注释被剥离,并且假设SELECT查询,上面的一个小变化就是在SELECT之后添加一个计算列作为第一件事,比如

SELECT IF('some comment/tag' = '', 1, 0) AS BogusMarker, here-start-the-original-select-list
-- or
SELECT 'some [short] comment/tag' AS QueryID, here-start-the-original-select-list

这种方法的缺点是引入了额外的列值,每个结果行。后一种形式,实际上使用“comment / tag”值作为此值,这可能有助于调试目的。

答案 1 :(得分:1)

今天发现了这个:

mysql支持奇怪的语法:

/*!<min-version> code here */

嵌入只能由mysql解释的代码,并且只嵌入指定最小版本的mysql 这在此处记录:http://dev.mysql.com/doc/refman/5.0/en/comments.html
(例如,由mysqldump使用。)

这些注释不会被解析出来,并且包含在进程列表中,与普通的注释不同,即使代码实际上没有被执行。

所以你可以做点什么

/*!999999 comment goes here */ select foo from bla;

要在过程列表中显示注释,但不要更改代码。 (直到mysql开发人员决定膨胀他们的版本编号并发布编号超过99.99.99的版本,在这种情况下你只需要添加另一个数字。