MySQLでストアドプロシージャをデバッグする最も簡単な方法

MySQLでストアドプロシージャをデバッグする最も簡単な方法

同僚から、一時テーブルを使用して変数データを挿入して表示する方法を教わったことがありますが、この方法は面倒すぎる上、Mysql にはストアド プロシージャをデバッグするためのより優れたツールがありません。今日グーグルで調べたところ、デバッグにはselect + 変数名メソッドを使用できることがわかりました

具体的な方法:

ストアド プロシージャに次のステートメントを追加します。
変数1、変数2を選択します。

次に、mysql に付属の cmd プログラムを使用して、mysql> と入力します。
ストアド プロシージャ名 (入力パラメーター 1、@ 出力パラメーター) を呼び出します。(注: これは新しい学生を支援するためのものですが、ストアド プロシージャに出力変数がある場合は、@ と任意の変数名を追加するだけで済みます)。
変数の値が cmd の下に表示されていることがわかります。簡単ですよね?ハハ、これがお役に立てれば幸いです。

次のようなストアドプロシージャがあります

CREATE PROCEDURE `p_next_id`(kind_name VARCHAR(30), i_length int, currentSeqNo VARCHAR(3), OUT o_result INT)
始める 
     @a = NULL を設定します。
     @b を NULL に設定します。
     SELECT id INTO @a FROM t_seq WHERE number= currentSeqNo and length= i_length ; IF (@a is null ) THEN
            length = i_length の場合、@a FROM t_seq に min(id) を選択します。
            番号を選択 INTO @b FROM t_seq WHERE id = @a;ELSE
        t_seq から @b に番号を選択します。WHERE id = @a+1;        
     終了の場合;        
     @b を o_result に選択します。     
終わり

Navicat でストアド プロシージャを呼び出す


ステートメント呼び出しの書き込み
call p_next_id('t_factory',2,'0',@result); -- 上記のストアド プロシージャには 4 つのパラメーターが含まれているため、ここで呼び出すときにも 4 つのパラメーターを渡す必要があります。入力パラメーターの値を入力し、変数を使用して出力パラメーター @result を表します。
select @result; -- この文はコンソールに変数の値を表示します
2. ウィンドウのクリック

直接実行をクリックすると、ポップアップ入力ボックスに「t_factory」、「2」、「0」、「@result」と入力します。

ストアドプロシージャの実行手順のトレース

MySQL には、Oracle のようなストアド プロシージャをデバッグするための plsqldevelper ツールがないため、実行プロセスを追跡する簡単な方法が 2 つあります。

デバッグ プロセスを記録するには、一時テーブルを使用します。ストアド プロシージャに select @xxx を直接追加し、コンソールで結果を表示します。
たとえば、上記のストアド プロシージャにいくつかのクエリ ステートメントを追加します (以下の赤いステートメントに注意してください)。

CREATE PROCEDURE `p_next_id`(kind_name VARCHAR(30), i_length int, currentSeqNo VARCHAR(3), OUT o_result INT)
始める 
     @a = NULL を設定します。
     @b を NULL に設定します。
     SELECT id INTO @a FROM t_seq WHERE number= currentSeqNo and length= i_length; SELECT @a;     
     IF (@a が null ) THEN
            length = i_length の場合、@a FROM t_seq に min(id) を選択します。
            t_seq から @b に番号を選択します WHERE id = @a; @b を選択します;
     それ以外
        t_seq から @b に番号を選択します。WHERE id = @a+1;        
     終了の場合;        
     @b を o_result に選択します。     
終わり

これで、MySQL でストアド プロシージャをデバッグする最も簡単な方法についてのこの記事は終わりです。MySQL でストアド プロシージャをデバッグする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL ストアド プロシージャでの変数の定義と割り当て
  • MySQLストアドプロシージャの詳細な説明
  • MySQL ストアド プロシージャ カーソル ループの使用の概要
  • MySQL ストアドプロシージャの使用例の詳細な説明
  • MYSQL ストアドプロシージャと関数の簡単な記述
  • MySQL ストアド プロシージャの例 (トランザクション、出力パラメータ、ネストされた呼び出しを含む)
  • MySql ストアド プロシージャと関数の詳細な説明
  • mysql クエリ データベース ストアド プロシージャと関数ステートメント
  • MySQL のインポートとエクスポート データベース、関数、ストアド プロシージャの紹介
  • MySQL のストアド プロシージャの分析例とストアド プロシージャの呼び出し方法

<<:  Nginx リバース プロキシから go-fastdfs へのケースの説明

>>:  ページ内にマーキーとフラッシュが共存する場合の競合解決

推薦する

CSS 水平プログレスバーと垂直プログレスバーの実装コード

時々、素敵なスクロールバー効果を見るのは楽しいものです。ここでは、CSSを使用してそれを実現する方法...

Centos7.5でのIPアドレス設定の実装

1. IPアドレスを設定する前に、まずifconfigを使用してネットワークカード情報を表示し、ネッ...

Iframe の使用を減らすべきいくつかの理由の分析

次のグラフは、100 個の異なる要素で iframe を作成するのにどれくらいの時間がかかるかを示し...

JavaScript コンソールのその他の機能

目次概要コンソールログコンソール.infoコンソール.警告コンソールエラーコンソールテーブルコンソー...

VmWareでcentos7をインストールするときにインターネットにアクセスできない問題の解決策

Centos7 のインストール時に VmWare がインターネットにアクセスできない場合はどうすれば...

フロントエンド開発者は毎日HTMLタグの理解を学ばなければならない(1)

2.1 セマンティクス化により、Webページが検索エンジンに理解されやすくなりますこの章では、We...

mysqlパラメータsql_safe_updatesを使用して更新/削除範囲を制限する方法の詳細な説明

序文皆さんご存知のとおり、MySQL の運用・保守において、更新/削除条件が誤っているためにデータが...

Javascript における分割代入構文の詳細な説明

序文ES6 で初めて導入された「構造化代入構文」を使用すると、配列やオブジェクトの値を異なる変数に挿...

MySQL シリーズ 4 SQL 構文

目次チュートリアルシリーズ1. SQL言語の紹介と仕様2. データベース操作1. ライブラリを作成す...

TypeScriptの基本型の詳細な説明

目次ブール型数値型文字列型文字列と数値を連結する未定義およびnull配列型タプル型列挙型あらゆるタイ...

Dockerを使用してPythonランタイム環境の基本イメージを作成する方法

1. 準備1.1 Pythonインストールパッケージをダウンロードします(注:Pythonバージョン...

Vue プロジェクトの最初の画面のパフォーマンス最適化コンポーネントの実践ガイド

目次Vue ファースト スクリーン パフォーマンス最適化コンポーネント説明するインターセクションオブ...

Vue の foreach 配列と js の traversal 配列の書き方の説明

Vue foreach配列を記述し、jsで配列をトラバースする方法シナリオVueでAxiosを使用し...

MySQL数千万の大規模データに対する30のSQLクエリ最適化テクニックの詳細な説明

1. クエリを最適化するには、テーブル全体のスキャンを避けてください。まず、where と orde...

mysql8.0.19 でパスワードを忘れた場合の完璧な解決策

おすすめの読み物: MySQL 8.0.19 は、間違ったパスワードを 3 回入力するとアカウント ...