zoukankan      html  css  js  c++  java
  • 3.5 在批处理模式下使用mysql

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

    shell> mysql < batch-file

    假设你是在Windows系统下执行,而且你的文件里有一些可能会造成问题的特殊字符,你能够这么做:

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

    假设你须要在命令行上指定连接參数,命令应为:

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

    当这样操作mysql时。你先创建了一个脚本文件。然后执行脚本。

    假设你想继续执行这个脚本,即使脚本中的语句可能会产生一些错误,那么你就须要使用 –force命令行选项。

    为什么使用脚本?有非常多原因:

    • 假设你须要反复执行查询(比方说,每天或每周),能够把它编成一个脚本。则每次执行时不必又一次键入。
    • 能够通过拷贝并编辑脚本文件从相似的现有的查询生成一个新查询。
    • 当你正在编写查询时,批模式也是非常实用的,特别对多行命令或多语句命令序列。

      假设你犯了一个错误。你不必又一次输入全部内容。仅仅须要编辑脚本来改正错误,然后告诉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.

    你还能够使用source命令或 .命令从mysql提示符中使用脚本:

    mysql> source filename;
    mysql> . filename

    很多其它内容请查看
    Section 4.5.1.5, “Executing SQL Statements from a Text File”

  • 相关阅读:
    poj2942 点-双联通+二分图染色
    poj1523割顶-点双联通
    poj3694 边-双连通分量+lca
    poj3177边-双连通分量
    poj3352 边-双联通分量
    Codeforces Round #377 (Div. 2) F
    Educational Codeforces Round 30D. Merge Sort
    洛谷p3369 treap
    hdu3572线性欧拉筛
    HYSBZ
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/7130252.html
Copyright © 2011-2022 走看看