Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103733822
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Mysql/postgreSQL

2008-05-14 23:22:51

   来源:

在前面的章节中,你交互式地使用mysql输入查询并且查看结果。你也可以以批模式运行mysql。为了做到这些,把你想要运行的命令放在一个文件中,然后mysql从文件读取它的输入:

shell> mysql < batch-file

如果你需要在命令行上指定参数,命令可能看起来像这样:

shell> mysql -h host -u user -p < batch-file
Enter password: ********

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

为什么要使用一个脚本?有很多原因:

  • 如果你重复地运行查询(比如说,每天或每周),把它做成一个脚本使得你在每次执行它时避免重新键入。
  • 你能通过拷贝并编辑脚本文件从类似的现有的查询生成一个新查询。
  • 当你正在开发查询时,批模式也是很有用的,特别对多行命令或多行语句序列。如果你犯了一个错误,你不必重新打入所有一切,只要编辑你的脚本来改正错误,然后告诉mysql再次执行它。
  • 如果你有一个产生很多输出的查询,你可以通过一个分页器而不是盯着它翻屏到你屏幕的顶端来运行输出:
    shell> mysql < batch-file | more
    
  • 你能捕捉输出到一个文件中进行更一步的处理:
    shell> mysql < batch-file > mysql.out
    
  • 你可以散发脚本给另外的人,因此他们也能运行命令。
  • 一些情况不允许交互地使用,例如, 当你从一个cron任务中运行查询时。在这种情况下,你必须使用批模式。

当你以批模式运行mysql时,比起你交互地使用它时,其缺省输出格式是不同的(更简明些)。例如,当交互式运行SELECT DISTINCT species FROM pet时,输出看起来像这样:

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

但是当以批模式运行时,像这样:

species
bird
cat
dog
hamster
snake

如果你想要在批模式中得到交互的输出格式,使用mysql -t。为了回显以输出被执行的命令,使用mysql -vvv

阅读(332) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~