我希望能够在每个查询的开头添加一个小注释,所以当我在进程列表或“mytop”中看到它时,我可以告诉它在哪里运行。
这样的事情可能吗?
答案 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的版本,在这种情况下你只需要添加另一个数字。