1. mysqltest是mysql自带的测试引擎, 它实现了一种小语言,用来描述测试过程,并将测试结果与预期对比。
小语言按照语法大致分为三类:mysql command,sql,comment。sql和comment很容易理解,前者是mysql支持的sql,
后者是注释,一般用来描述测试过程. mysqltest解释的是以test为后缀名的文本文件
mysqltest case的语法比较简单,分三类:
1. command
command用来控制运行时的行为,后面重点介绍。
一般有两种写法:
command; # 这是后面带;的
--command # 前面带--,不需要;
另外,while和if要稍微特殊些。
2. sql
就是普通的sql语句,CASE里面大部分都是sql,以分号结束。
3. comment
就是注释,用#开头
mysqltest提供了几十个command,下面只介绍我们常用的。
1. --error
有些CASE就是要验证sql失败的情况,在sql语句前面加上—error 错误码就可以了。--error后面可以跟两种值,一种是error no,另外一种是sqlstate,如果是后者需要加上S做前缀。
比如:
--error 65535
create table t1(pk createtime primary key, a int);
或
--error SHY000
<