逐个语句输入时难免出错,出错后要重新输入,可以使用批处理一次输入所有语句。
1. 创建批处理文件
创建 batch.txt 文件,在其中写入 MySQL 命令:
$ vi batch.txt
SELECT species, COUNT(*)
FROM pet GROUP BY species
ORDER BY species;
2. 从文将读取命令
2.1 shell 命令
通过以下方式执行脚本:
mysql < batch-file
如:使用命令执行 batch.txt 脚本:
$ mysql -u root -p < /path/batch.txt
species COUNT(*)
bird 2
cat 2
dog 3
hamster 1
snake 1
如果您希望脚本继续运行,即使其中的某些语句产生错误,也应使用 --force
命令行选项。
补充:
- 如果要以批处理方式获取交互式输出格式,请使用
-t
- 要将执行的语句和执行结果回显到输出,请使用
-v
2.2 mysql
也可以在 mysql 提示符中使用脚本:
mysql> source /path/batch.txt
mysql> \. /path/batch.txt
3. 流重定向
使用 shell 命令执行脚本,将结果重定向到文件中:
$ mysql -u root -p < /path/batch.txt >> result.txt
查看结果:
$ cat result.txt
species COUNT(*)
bird 2
cat 2
dog 3
hamster 1
snake 1
REFERENCE: MySQL 8.0 Reference Manual