显示查询以及文件结果

时间:2012-10-05 16:22:58

标签: mysql

MySQL版本:5.58 MySQL社区服务器

我正在尝试为每个开发版本组织我们的脚本,以便我们的生产dba在发布期间更容易执行脚本。我有一些脚本有更新,插入,删除语句,然后是一个调用这些脚本的主脚本,所以dba只需要在发布期间调用主脚本。

master.sql包含: 源文件1.sql 源文件2.sql source file2.sql

在调试这些脚本的过程中,我使用'tee'登录到一个文件,我为每个单独的sql文件中的每个查询运行得到类似的内容:

查询OK,1行受影响(0.01秒) 匹配的行数:0已更改:0警告:0

在上面的示例中,它无法更新行,因为它无法在where子句中找到匹配项,因此我需要查看该查询以查看原因。但是我看不到查询,因为它没有显示结果,所以我必须尝试计算结果,然后查看原始文件以确定哪个查询有问题。这对于每个文件中的少量查询来说没有什么大不了的,但如果我在文件中有数百个查询,则会很痛苦。

我的问题是:有没有办法让mysql显示实际查询及其生成的结果,而不必在文件中的每个查询后都有某种print语句(即选择'my query') ?

由于

3 个答案:

答案 0 :(得分:0)

如果你正在使用tee,听起来你有一个bash脚本。尝试在执行每个查询之前回显出查询(或查询的名称)。

答案 1 :(得分:0)

您可以使用0秒启用慢速查询日志记录,这样每条查询都会被记录,这样您就可以获得结果以及SQL语句本身。我不确定它是否能为您提供足够的信息。

# Time: 121005 11:39:51
# User@Host: user[user] @ localhost []
# Query_time: 0.003103  Lock_time: 0.000077 Rows_sent: 0  Rows_examined: 3
SET timestamp=1349455191;
update test set end = Null;

答案 2 :(得分:0)

您可以使用mysql客户端的详细选项。 例如:

mysql -u xxxx -pxxxx -h xxxxx -P XXXX -vvv --show-warnings --line-numbers < x.sql

将生成包含查询文本的详细日志。