mysqltest仕上げ文法

1. mysqltestは、テストプロセスを記述するために使用される小型の言語を実装してMySQLの独自のテストエンジン、期待されるコントラストの試験結果です。

 mysqlのコマンド、SQLコメント:小さな言語の構文によると、大きく3つのカテゴリーに分け。SQLコメントは、前者はMySQLのSQLでサポートされ、理解しやすいです

 後者は、通常、テストプロセスを記述するために使用されるコメントです。   Mysqltest解釈は、テキストファイルの拡張子のためのテストをベースに

:mysqltestケース文法は、次の3つのカテゴリに分けられ、比較的簡単です
。1.コマンド

コマンドはハイライトに続いて実行時の動作を制御するために使用されます。
二つの一般的な書き込みがあります
;#テープ後である;コマンド
--command#フロントバンド-なし;
さらに、しばらく、そしてもしもう少し具体的な。

2. SQLは
  、共通のSQLステートメント、それらのほとんどは、SQLの場合、セミコロンで終わりです。
3.コメントは
  #で始まるコメントである

だけでいつもの次は、コマンドの数十を提供していますmysqltest。

1. --error
CASEのいくつかは、状況のSQLがその上に-errorエラーコードでSQL文の前に、失敗を検証することです。値の二種類の後であってもよいと後者がSは接頭辞を追加する必要がある場合--error、一方が誤りであり、別のSQLSTATEは、ではありません。
たとえば:
--error 65535
表T1(主キーPK CREATETIME、int)を作成し、
または
SHY000 --error
T2からT1連合(EU)からのSELECT A SELECT *;
2. disable_abort_on_error / enable_abort_on_error
デフォルト後の(有効)にSQLがmysqltestケースを失敗しました実行されませんコンテンツの後ろに、終了し、それは後者の内容は、失敗したSQLの後に続けて、ファイルを拒否生成することができdisableコマンドを表示を実行し、拒否したファイルを生成しません。
Disable_query_log 3. / enable_query_log
(有効)すべてのSQL文は、いくつかの例では、デフォルトで結果ファイルに記録されます(このようなループの使用など特に問い合わせることができる)のショーを開くためにしたくないの呼び出しを無効にすることができます。
enable_XX / disable_XXのような他の形のコマンドの使用方法の多くが類似しているがあります。
4. enable_parsing / disable_parsing
同様のコメントで、複数の行に注釈を付けるために使用されます。
conncetionの5.接続/切断
テストセッション、彼らは前者が接続または切断を確立することで、これらの2つのコマンドを使用する場合があります。後者は、接続の複数の切り替え可能に接続SQLステートメント使用して実行される
ような:
接続(conn3,127.0.0.1、根,,テスト、25042)を、
接続CONN3は、
表T1(INT主キー)を作成します。
テーブルT1ドロップ、
切断CONN3;
6.システム/ Execの
シェルコマンドを実行
7のPerl [ターミネーター]
埋め込まれたPerlコードなどの位置ターミネーターまで:
PerlのEND_OF_FILE;
印刷「これは別のテスト\ N- IS」;
END_OF_FILE
8 vertical_results / horizo​​ntal_results
SQL文「\ G」と類似した関数
9.終了
終了するには、どのような次のが実行されることはありません
10. LETの$ VAR_NAME =値
変数代入、整数、文字列缶
11株式会社$ VAR_NAME / decでの$ VAR_NAME
1つのプラス/マイナス1の整数であり、唯一mysqltest操作がサポートされています。
12.評価
SQLステートメントを実行するような、可変伝送をサポートしています
'1' T1(I、C1、C256、DT、D)の値(0、INTO評価INSERT、 '私は$'、' 2012年10月10日12です。 0:00「」2012年10月10日「);
13.クエリ
クエリが指定されている場合、裁判官は、すべてのことがCOMAND名前を避けるためであるSQL文、最初のSQLステートメントまたはコマンドであるだろう各行のmysqltest説明とSQL競合が、そこに一般意志ではありません。
14.センド/ / eval_sendを享受
する前に享受SQL文を送信するために同じ接続を使用することはできません、すぐに返すようにクエリを送信した後の結果を待たずに。
eval_send段変速機をサポートしています。
15.エコー
プリント
16 query_get_value(クエリ、COL_NAME、ROW_NUM )
列の値を取得するために、クエリの結果である行を返し
17ソース
コードのブロックを共有することができる、このコードは、ソースを導入することにより、別個のファイルに配置することができるより多くのケースを。
18.必要
マッチが失敗した場合に、次のクエリ結果の結果、指定したファイルを必要とするには、比較を行うと、エラーが「このテストはサポートされていません」と報告。バージョンを使用することができるかどうかを決定するためのこの一般的な試験。
19.結果は、
明示的にパス実行結果保存するファイルを指定
20.スリープ/ real_sleep
睡眠を。
21 replace_columnを
交換する列の一部の値をクエリの結果を、結果と実行時間のいくつかは、そのようなCREATETIMEまたはmodifytimeタイプという、比較のためにある一定の値を置き換えるために、このコマンドを使用することができます。例えば:
--replace_column 2検索し
、T1からSELECT PK、B
22 A IF(exptr)
{
}
Exptrを実行ゼロでない場合の部分をブレース。他に提供するかどうmysqltest他に、注意してください。Mysqltest低いバージョンはexptr比較式をサポートしていません。
例えば:
IF(== $ $ value_now value_orig)
{
--echo成功
}
23. Aながら(exptr)
{
}は
公知exptr 0 mysqltestバージョンが低いexptr比較表現をサポートしていない、括弧の部分を行います。いいえ同様のbreakコマンドは、あなたがしようとするエンドを使用することはできません。
例えば:
一方、($ I <10000)
{
T1(I、C1、C256、DT、D)の値(0、INTO評価INSERT '1' 、 'Iは$'、 '2012年10月10日午前12時00分00秒'、' 2012年10月10日「);
。INC $私;
}
同様に他のコマンド:
1 / MySQLをmysqladminのに似ピング、シャットダウン、save_master_pos、sync_slave_with_master、sync_with_masterなど、(私たちがサポートしていません)機能。
2. start_timerおよび他のタイミングコマンド
3. append_file、コマンドMV、REMOVE_FILE、chmodコマンド、WRITE_FILEおよびその他のファイル操作

の詳細は、以下を参照してくださいます。http://dev.mysql.com/doc/mysqltest/2.0/en/mysqltest-commands.html

文法タグの実装は次のよう:

--echo#措置の別名を変更するスクリプトを使用し、セッションの値を変更します。
接続(CONN1、$ OBMYSQL_MS0、@ルートSYS ,, oceanbase、$ OBMYSQL_PORT);
接続(conn2、$ OBMYSQL_MS0、オラクルADMIN @、ADMIN、テスト、 $ OBMYSQL_PORT)。


$のcurrent_num = 1ましょう。
$番号= 575ましょう。
一方、($のcurrent_num <= $数)
{
接続CONN1。
(名前、名前、$ののcurrent_numによってall_time_zone_nameため.__ oceanbaseから名前を選択)$ tz_name = query_get_valueてみましょう。
接続conn2。
evalのセッション設定TIME_ZONE = '$のtz_name'に変更します。
デュアルからSESSIONTIMEZONEを選択EVAL;
株式会社$のcurrent_num。
}

 

おすすめ

転載: www.cnblogs.com/quzq/p/11392602.html