方法1

若有SQL脚本a.sql, b.sql, 其目录在f盘根目录下, 则可再写一个SQL脚本c.sql(假设其目录也在f盘根目录下, 也可以在其他路径下)如下:

source f:/a.sql;

source f:/b.sql;

然后执行source f:/c.sql 即可.

方法2

方法1的不便之处在于, 要为每个脚本写一句代码, 若有成千上万个, 这样写便不现实. 此时, 可用批处理来实现.

以执行f:\test\目录下所有的SQL脚本为例, 其批处理代码如下:

@echo off

for %%i in (f:\test*.sql) do (

echo excute %%i

mysql -uroot -p123456 < %%i

)

echo success

pause

其中: do后面的左括号要跟在do后, 若放在do的下一行, 则出会出现一闪而过的情况, 数据库脚本有没有执行没有去查看.

若是当前目录下, 可将”f:\test*.sql” 改为”.*.sql” 即可.

注意在SQL脚本中写上 use db_name.

批处理命令备份mysql数据库

本文转自http://www.jb51.net/article/19296.htm

MySQL数据的备份工具也许有很多,在这我要给大家分享一下通过DOS批处理命令和MySQL、WinRAR命令来进行备份工作。

工作环境 Windows Server 2003 ,MySQL安装目录 D:\MySQL , WinRAR 安装目录 C:\Program Files\WinRAR\WinRAR.exe

备份数据存储的路径为 E:\数据备份,好了下面开始写DOS批处理命令了。

复制代码 代码如下:

set “Ymd=�te:~,4%�te:~5,2%�te:~8,2%”

md “E:\数据备份\%ymd%”

“D:\MySQL\bin\mysqldump.exe” –opt -Q mysql -uroot -p123456789 > E:\数据备份\%Ymd%\mysql.sql

REM ….. 这里可以添加更多的命令,要看你有多少个数据库,其中 -Q 后面是数据库名称 -p紧跟后面是密码

echo Winrar loading…

“C:\Program Files\WinRAR\WinRAR.exe” a -ep1 -r -o+ -m5 -df “E:\数据备份\%Ymd%.rar” “E:\数据备份\%Ymd%”

echo OK!

把上面的命令保存为 backup.bat ,双击运行,就开始备份数据了。

第一句是建立一个变量 %Ymd% ,通过 �te% 这个系统变量得到日期,�te:~,4% 表示取日期的前面4个字符就是年份,%�te:~5,2% 表示取日期第5个字符开始的2个字符就是月份,�te:~8,2% 这个就是日期号数,如 2009-06-20 这个日期最后得到的结果是 20090620

第二句就是使用变量 %Ymd% 的值建立一个空的文件夹。

第三句开始就是使用MySQL的命令对数据库mysql 进行备份,并存储在 E:\数据备份\%ymd% 这个文件夹下面,这里可以有很多类似的命令,备份多个数据库。

最后就是使用 WinRAR 对备份的数据进行压缩,并存储为以 %Ymd% 变量值建立的RAR文件名,同时删除备份的 %Ymd% 目录。

如果你想让系统自动定期备份,就可以通过系统的任务计划定期执行这个命令。

批处理语法,bat语法

批处理就是把一批或者说是一条条命令放在一个文本里,然后批量执行!执行这

一批命令的文件的扩展名是BAT文件或者CMD,把任何一批命令放入在有这样扩展名的文件里,执行时里面的命令就会一条条的执行完,当然

我们还可以在其中加入一些逻辑判断的语句,让里面的命令在满足一定条件时执行指定的命令.

了解了大概意思后,我们正式开始学习.先看一个简单的例子!

@echo off

echo “欢迎来到非常BAT!”

pause

把上面的3条命令保存为test.bat或者test.cmd然后执行,他就会在屏幕上显示二行话:”欢迎来到非常BAT!请按任意键继续…”

这就是一个简单批处理文件了,我们来分析一下.

这个批处理文件一共就用了2条命令 “echo” 和”pause” 还有一个特殊符号”@”

@符号在批处理中的作用是关闭当前行命令的回显,也就是不显示执行的是什么命令,只显示命令的结果!

你可以执行下面这个批处理文件来理解,保存为.bat或者.CMD

@echo 你好

echo 你好

@pause

echo命令的作用有两个,一个是在CMD上回显一行内容.如:echo “欢迎来到非常BAT!”,还一个是关闭命令的回显:echo off

echo off的作用就相当于在每条命令前面加一个@符号,这样所有的命令将只会显示结果不显示命令.

我们在echo off这命令前加一个@符号是为了不让echo off这条命令本身显示出来,让批处理更完美!

pause命令就是暂停的意思,防止批处理执行完后直接退出!执行pause命令后会自动在CMD里显示”请按任意键继续…”这样一行话!

从上面这个简单的批处理中,我们可以发现其实批处理就是运用一些含有特殊意义的符号和一些完成指定功能的命令组合而成,那么

在批处理中有多少这样的特殊符号和功能命令呢?我们现在就来仔细了解一下一些最常用的!

(以下内容来源网络,请各位仔细阅读,好进入下节的实例说明)

批处理的常见命令

REM

ECHO

GOTO

CALL

PAUSE

IF

还有(FOR,SETLOCAL,SHIFT)这几个命令比较难,不适合写在基础篇,以后说明!

批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT。

这些命令统称批处理命令。

介绍命令

1、REM (remark)

REM是个注释命令,一般用来给程序加上注解,该命令后的内容在程序执行时,将不会被显示和执行。

例:REM 这个命令就是注释

这一句将不会被执行

2、ECHO

ECHO是一个回显命令,主要参数有OFF和ON。一般用ECHO MESSAGE来显示一个特定的消息。

例:

Echo off

Rem 以上代表关闭回显(就是不显示所执行的命令)

Echo 这个就是消息(message)

Rem 以上代表显示“这就是消息(message)”这列字符

咱们来看看执行结果:

3、GOTO

GOTO会点编程的朋友就会知道这是跳转的意思。

在批处理中允许以“:XXX”来构建一个标号,然后用GOTO XXX直接来执行标号后的命令。

例:

:lable

REM 上面就是名为LABEL的标号

DIR C:\

DIR D:\

GOTO lable

REM 以上程序跳转标号LABEL处继续执行

咱们来看看结果:

4、CALL

CALL命令可以在批处理执行过程中调用另一个批处理,当另一个批处理执行完后,再继续执行原来的批处理

例:

创建一个2.BAT,内容如下

ECHO 这就是2的内容

创建一个1.BAT,内容如下

ECHO 这是1的内容

CALL 2.BAT

ECHO 1和2的内容全部显示完成。

执行1.BAT,来看看结果:

5、PAUSE

PAUSE,玩游戏的人都知道,暂停的意思

在这里就是停止系统命令的执行并显示下面的内容。

例:

PAUSE

6、IF

IF 条件判断语句,语法格式如下:

IF [NOT] ERRORLEVEL number command

IF [NOT] string1==string2 command

IF [NOT] EXIST filename command

解释下:

[NOT]:将返回结果取反值,就是“如果没有”的意思

ERRORLEVEL:

是命令执行完成后返回的退出值

Number:

退出值的数字取值范围0~255,判断时值的排列顺序应该由大到小。返回的值大于等于指定的值时,条件成立

string1==string2:

string1和string2都为字符的数据,英文内字符的大小写将看作不同,这个条件中的等于号必须是两个(绝对相等的意思)

条件相等后即执行后面的command

EXIST filename:

为文件或目录存在的意思

IF ERRORLEVEL这个句子必须放在某一个命令的后面,执行命令后由IF ERRORLEVEL 来判断命令的返回值。

例:

(1)

IF [NOT] ERRORLEVEL number command

检测命令执行完后的返回值做出判断

echo off

dir z:

rem 如果退出代码为1(不成功)就跳至标题1处执行

IF ERRORLEVEL 1 goto 1

REM 如果退出代码为0(成功)就跳至标题0处执行

IF ERRORLEVEL 0 goto 0

:0

echo 命令执行成功!

Rem 程序执行完毕跳至标题exit处退出

goto exit

:1

echo 命令执行失败!

Rem 程序执行完毕跳至标题exit处退出

goto exit

:exit

Rem 这里是程序的出口

(2)IF string1==string2 command

检测当前变量的值做出判断

ECHO OFF

IF 1==2 goto no

Echo 变量相等!

goto exit

:no

echo 变量不相等

goto exit

:exit

看看效果,敲击这个命令1.bat 数字

(3)IF [NOT] EXIST filename command

发现特定的文件做出判断

echo off

IF not EXIST autoexec.bat goto 1

echo 文件存在成功!

goto exit

:1

echo 文件不存在失败!

goto exit

:exit

这个批处理大家可以放在C盘和D盘分别执行,看看效果

特殊符号:

1. @

2. >

3. >>

4. |

5. ^

6. &

7. &&

8. “”

9. ,

10. ;

mysql 批处理命令执行多个sql脚本的更多相关文章

  1. SQL Server数据库备份:通过Windows批处理命令执行

    通过Windows批处理命令执行SQL Server数据库备份 建立mybackup.bat ,输入以下内容直接运行该脚本,即可开始自动备份数据库也可把该脚本加入windows任务计划里执行. --- ...

  2. 【ORACLE】记录通过执行Oracle的执行计划查询SQL脚本中的效率问题

    记录通过执行Oracle的执行计划查询SQL脚本中的效率问题   问题现象: STARiBOSS5.8.1R2版本中,河北对帐JOB执行时,无法生成发票对帐文件.   首先,Quartz表达式培植的启 ...

  3. MySQL监控全部执行过的sql语句

    MySQL监控全部执行过的sql语句 查看是否开启日志记录show variables like “general_log%” ; +——————+———-+|Variable_name|Value| ...

  4. jdbc在mysql下一次执行多条sql脚本

    默认连接mysql的时候一次只能执行一条sql.要批量执行sql需要在jdbcUrl中增加“allowMultiQueries=true”参数,完整jdbcUrl如下:  jdbc:mysql://l ...

  5. 上班打卡--- 通过批处理命令执行jar文件来记录上班时间

    如果 一个程序员要记录自己上班工作时间的话 ,还需要靠手动去记录, 那就有点 不够范了, 程序员自然要有自己的极客范儿 , 下面就跟我一起来(zhuangbi); 先列一下整体的步骤: 1: 先做一个 ...

  6. mysql -- 一次执行多条sql语句

    最近要做一个软件升级,其中涉及到数据库表字段的变动(新增或删除或修改),所有的关于数据库的变动的sql语句都是存放在Sqlupdate.sql文件中,每次升级的时候都需要执行一次Sqlupdate.s ...

  7. 启用mysql日志记录执行过的sql

    在mysql命令行或者客户端管理工具中执行:SHOW VARIABLES LIKE "general_log%"; 结果: general_log OFF general_log_ ...

  8. sql cmd命令执行sqlserver的sql文件

    有的时候,我们通过Log Explorer工具根据日志生成的回滚脚本,或者其他情况我们得到的脚本文件,通过sqlserver打开脚本文件的方式不爽,我们可以这样: 方式一: osql -S . -U ...

  9. mysql优化查找执行慢的sql

    想要进行sql优化,肯定得先找出来需要优化的sql语句 一.mysql有一个自带的sql执行慢记录日志文件,所记录的日志取决于参数long_query_time控制,默认情况下long_query_t ...

随机推荐

  1. 用递归方法计算斐波那契数列(Recursion Fibonacci Sequence Python)

    先科普一下什么叫斐波那契数列,以下内容摘自百度百科: 斐波那契数列(Fibonacci sequence),又称黄金分割数列.因意大利数学家列昂纳多·斐波那契(Leonardoda Fibonacci ...

  2. River Problem HDU - 3947(公式建边)

    River Problem Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tot ...

  3. 【XSY2779】最小表示串 KMP DP polya定理

    题目描述 给你一个字符串\(s\),问你有多少个串是最小表示串且字典序\(\leq s\) \(|s|\leq 1000\) 题解 先把\(s\)变成比\(s\)小的最大的最小表示串.方法是从后枚举每 ...

  4. 白兔的刁难 IDFT

    题目描述 给你\(n,k\),求 \[ \forall 0\leq t< k,s_t=\sum_{i=-t}^{n-t}[k|i]\binom{n}{i+t} \] 对\(998244353\) ...

  5. 基于 __new__ 方法的单例模式

    单例模式定义 首次实例化创建实例化对象 之后的每次实例化都用最初的实例化对象 即单实例模式 __new__ 的原理 __new__ 方法可以在 __init__ 方法执行 这样可以在初始化之前进行一系 ...

  6. MT【261】左准线

    设双曲线$x^2-\dfrac{y^2}{3}=1$的左右焦点为$F_1,F_2$, 直线$l$ 过$F_2$且与双曲线交于$A,B$两点.若$l$的斜率存在,且$(\overrightarrow{F ...

  7. 分数规划模板(洛谷P4377 [USACO18OPEN]Talent Show)(分数规划,二分答案,背包)

    分数规划是这样一个东西: 给定若干元素,每个元素有两个属性值\(a_i,b_i\),在满足题目要求的某些限制下选择若干元素并求出\(\frac{\sum a}{\sum b}\)的最大值. 如果没有限 ...

  8. Hdoj 1233.还是畅通工程 题解

    Problem Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直 ...

  9. 【Nowcoder71E】组一组(差分约束,最短路)

    [Nowcoder71E]组一组(差分约束,最短路) 题面 Nowcoder 题解 看到二进制显然就直接拆位,那么区间的按位或和按位与转成前缀和之后,可以写成两个前缀和的值的差的大小关系,那么直接差分 ...

  10. [luogu3157][bzoj3295][CQOI2011]动态逆序对【cdq分治+树状数组】

    题目描述 对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对(i,j)的个数.给1到n的一个排列,按照某种顺序依次删除m个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序 ...