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
select a from t1 union select * from t2;
2. disable_abort_on_error / enable_abort_on_error
默认情况下(enable)sql执行失败后mysqltest就退出了,后面的内容就不会执行,也不会生成reject文件,显示执行disable命令可以在sql失败后继续执行后面的内容,并生成reject文件。</