EDITボタンの活用法!



HTML版テーブル定義書のボタンは、主にテストデータを手軽に作成することを目的とした機能ですが、僕(作者)が具体的にどうやって使っているのかを、ご紹介したいと思います。
ボタンで大量のINSERT文やDELETE文を手軽に生成して、効率よく対象システムのテストするのが目的です。

利点としては

  • 既存データとの重複を気にせずテストデータが登録できる。
  • 重複した既存データのバックアップ / リストアを容易に行うことができる。
  • 対象データの SELECT文 <> INSERT文 <> DELETE文 の生成(切替)が 1クリックで行える。

というところでしょうか。
これにより、テスト作業が捗る(はかどる)ようになりました。

それでは以下、具体的な操作を細かく記載しますのでご覧ください。
テーブル定義書サンプルM0001 に A5、Excelを併用してテストデータを登録し、テストデータの利用後に元に戻すところまでの操作になります。

※A5でなくて、”Navicat” とか “SI Object Browser” とか “SQL Developer” とか、Excelでなくて “Google Spread Sheet” とかでも同じ操作感でいけると思います。

詳細操作

  1. テストデータの作成
    1. 作業用ファイル(Excel)作成
      まずは作業用Excelを開きます


        
    2. 作業用Excelの調整
      全セルの書式を”文字列”にします。



      ※これやらないと、データ貼り付けた時に「000100」が前0削除されて「100」とかになっちゃうので

    3. テストデータ編集 (目的のキー、データパターンに編集する)
      登録したいテストデータをExcel上で作成します。

      ※PK項目がExcel上で重複しないように編集!

  2. テストデータ登録

    1. 作業シートのデータをコピー
      登録したいデータのセルを選択してコピー(Ctrl+C)します。

    2. コピーデータ(Excel)をHTML版テーブル定義書へ貼り付け
      欄の入力テキスト欄(“INPUT”)に貼り付け (SQL文:デフォルトINSERT+DELETE文が生成されますが、この時点では、このSQLは使いません)

    3. 既存データ確認用SELECT文の生成
      「SEL」ボタン

      になっていること。

    4. SELECT文コピー
      ボタンでクリップボードへコピー (右上に「Copy To Clipboard」が表示されます)

    5. A5にSELECT文を貼り付けて実行

      ※「既存データが3件存在した」として進めます。

    6. 既存データバックアップ
      A5から作業用Excelシートへバックアップ(コピー)します。

      ※件数が多い場合は別シートすると吉かも。

    7. 登録用INSERT文生成
      「INS」を選択してINSERT+DELETE文を生成します。

      になっていること。

    8. INSERT(+DELETE)文コピー

    9. A5にINSERT文(+DELETE)を貼り付けて実行



      ※既存の3件もろとも削除してから登録されますが、利用後にバックアップよりリストアするので問題ないです。

    10. 再度SELECT文の実行 (登録データ確認)
      「SEL」ボタンで生成して ボタン

    11. A5で実行

      ※登録データが表示される。

    12. 登録データのコミット
      ※登録完了です。目的のテストデータを使った作業を実施できる状態です。以降は、利用後の後片付けの操作になります。

  3. テストデータ削除
    1. DELETE文の生成
      HTML版テーブル定義書で「DEL」を選択してDELETE文を生成し、A5で実行します。





      ※件数が少ない場合はこの方法で問題ないですが、数百件、数千件レベルであれば、WHERE句で対象を指定した DELETE文 を別途作った方がいいかと思います。
      DELETE FROM M0001 WHERE ORG_CD like 'A%';

    2. データ確認用SELECT文

    3. SELECT文の実行
      テストデータがすべて削除されているかチェック。

    4. コミット

  4. バックアップデータリストア
    1. バックアップデータコピー
      作業用シートのバックアップセルを選択し、コピーします。

    2. リストア用INSERT文の生成
      HTML版テーブル定義書にコピーしたバックアップExcelデータを貼り付けて、リストア用INSERT (+DELETE)文を生成します。

      ※バックアップExcelデータを貼り付ける前にのところにある「×」ボタン、あるいはボタンで、以前の操作で入力したテキストをクリアすのを忘れずに。

    3. リストア用INSERT文の実行
      でクリップボードにコピーしたリストア用SQLをA5に貼り付けて実行。


    4. リストアデータ確認用SELECT文
      「SEL」を選択してリストアデータのSELECT文を生成。

    5. SELECT文の実行
      バックアップデータがすべてリストアされたかチェック。

    6. コミット

以上が操作になります。何となくイメージできましたでしょうか。
細かな操作はお好みで変更すればいいかと思います。

PCスペックや対象テーブルのレコード長にもよりますが、1度に生成(実施)するSQL文は多くても3000件~5000件くらいが無難でしょうか。大量のデータで上記のような操作をするとブラウザの各操作が重くなったり(いちいち処理が動いてしまう..要改善)、エラー(メモリ不足)になったり。SQL生成できても実行時に何かしらエラーが起きそうな感覚があります。(なんとなくです。明確な根拠はないんですが。。。)

僕(作者)は、数万件レベルのデータを登録する場合は、3000~5000件ずつの SQL生成&実行 を目安にしています。ご参考まで。

※一応レスポンスを考慮したロジックにはしていますが、数千件レベルになると、SQL生成に時間がかかります(ブラウザが固まったかと思ったりするかも…10秒、20秒、30秒かかったりもすることも…)。ご注意ください。