Mysql批处理模式

来自泡泡学习笔记
跳到导航 跳到搜索

在之前的章节中,你使用交互式的方式使用mysql输入语句并查看结果。你也可以在批处理模式下运行mysql。为此,将要运行的语句放入一个文件中,然后告诉mysql从文件中读取输入:

$> mysql < batch-file

如果你在Windows下运行mysql并且文件中有一些特殊字符会导致问题,你可以这样做:

C:> mysql -e "source batch-file"

如果你需要在命令行上指定连接参数,命令可能是这样的:

$> mysql -h 主机名 -u 用户名 -p < batch-file
输入密码:********

当你这样使用mysql时,你正在创建一个脚本文件,然后执行该脚本。

如果你想让脚本即使其中的一些语句产生错误也能继续运行,你应该使用--force命令行选项。


为什么要使用脚本?以下是一些原因:

1、如果你需要重复运行一个查询(比如每天或每周),将其作为脚本使你可以避免每次执行时重新输入。

2、你可以通过复制和编辑脚本文件从现有的相似查询生成新的查询。

3、在你开发查询时,批处理模式也可能很有用,特别是对于多行语句或多语句序列。如果你犯了一个错误,你不必重新输入所有内容。只需编辑你的脚本以纠正错误,然后告诉mysql再次执行它。

4、如果你有一个产生大量输出的查询,你可以通过分页器运行输出,而不是看着它从你的屏幕顶部滚动出去:

$> mysql < batch-file | more

5、你可以将输出捕获到一个文件中进行进一步处理:

$> mysql < batch-file > mysql.out

6、你可以将你的脚本分发给其他人,以便他们也可以运行这些语句。

7、有些情况不允许交互式使用,例如当你从cron作业运行查询时。在这种情况下,你必须使用批处理模式。


当你在批处理模式下运行mysql时,默认的输出格式与交互式使用时不同(更简洁)。例如,当你在交互式下运行SELECT DISTINCT species FROM pet时,输出看起来像这样:

+---------+
| species |
+---------+
| bird |
| cat |
| dog |
| hamster |
| snake |
+---------+

在批处理模式下,输出看起来像这样:

species
bird
cat
dog
hamster
snake

如果你想在批处理模式下获得交互式输出格式,使用mysql -t。要将执行的语句回显到输出中,使用mysql -v。

你也可以使用source命令或.命令从mysql提示符中使用脚本:

mysql> source 文件名;
mysql> . 文件名;