ホームページ > データベース > mysql チュートリアル > MySQL ストアド プロシージャをデバッグする方法

MySQL ストアド プロシージャをデバッグする方法

PHPz
リリース: 2023-04-20 10:42:35
オリジナル
1912 人が閲覧しました

MySQL は、人気のあるオープンソースのリレーショナル データベース管理システムです。 MySQL を使用すると、大量のデータを保存してアクセスするためのデータベースを作成および管理できます。ストアド プロシージャは、データベースに保存されているコード ブロックであり、これを呼び出すことで一般的な操作を実行できます。ストアド プロシージャを開発およびデバッグするときに、問題やエラーが発生する場合があります。この記事では、MySQL ストアド プロシージャをデバッグする方法を紹介します。

  1. MySQL ストアド プロシージャ デバッガを有効にする

ストアド プロシージャをデバッグする前に、MySQL ストアド プロシージャ デバッガを有効にする必要があります。これは、MySQL 構成ファイルで次のパラメータを設定することで実現できます。

[mysqld]
... 
# Enable stored procedure debugging 
debugger=1
ログイン後にコピー

ファイルを設定した後、変更を有効にするために MySQL を再起動する必要があります。

  1. デバッガの使用

MySQL には、シングルステップとノンステップの 2 つの主なタイプのデバッガがあります。シングルステップ デバッグは、ストアド プロシージャを 1 行ずつ実行し、各ステートメントの実行をステップごとに追跡する最も簡単な方法です。ノンステップ デバッグは、ストアド プロシージャの実行中にブレークポイントを実行する方法です。両方のデバッガについては、以下で詳しく説明します。

  1. シングルステップ デバッグ

シングルステップ デバッグは、ストアド プロシージャを 1 行ずつ実行する方法です。これにより、各ステートメントの前にコードを一時停止して検査することができます。次の手順に従って、シングルステップ デバッガーを有効にして使用できます。

  1. ストアド プロシージャを定義する

まず、ストアド プロシージャを定義して、その方法を示す必要があります。シングルステップデバッグを実行します。以下は、単純なストアド プロシージャです。

DELIMITER $$
CREATE PROCEDURE simple_addition(i INT, j INT)
BEGIN
    DECLARE result INT;
    SET result = i + j;
    SELECT result;
END$$
DELIMITER ;
ログイン後にコピー
  1. シングルステップ デバッガーを有効にする

ストアド プロシージャを定義した後、シングルステップ デバッガーを有効にする必要があります。次のステートメントを使用できます。

SET @@DEBUG=1;
ログイン後にコピー
  1. デバッガーの開始

次に、ストアド プロシージャ呼び出しステートメントに「debug」キーワードを追加して、デバッガーを開始する必要があります。 :

CALL simple_addition(20, 30) debug;
ログイン後にコピー
ログイン後にコピー

このステートメントを実行すると、MySQL は実行を一時停止し、制御をシングルステップ デバッガに移します。

    #シングルステップ デバッガーの使用
  1. #シングルステップ デバッガーでは、次のコマンドを使用してコードの実行を制御できます:

c: 実行が完了するかブレークポイントに到達するまでストアド プロシージャを実行します。
  • s: ストアド プロシージャのコードを 1 行ずつ実行します。
  • n: コードの次の行を実行します。ただし、サブルーチンまたは関数には入りません。
  • p 式: 値または式の値を出力します。
  • l: 現在の関数またはストアド プロシージャのコードをリストします。
  • b : 現在の行にブレークポイントを設定します
  • シングルステップ デバッガーの使用例を次に示します:

ストアド プロシージャを実行し、debug キーワードを使用して有効にしますシングルステップ デバッガー:
  1. CALL simple_addition(20, 30) debug;
    ログイン後にコピー
    ログイン後にコピー
「s」コマンドを実行して、必要に応じてコードを 1 行ずつ実行します。
  1. 行を実行する場合、「p result」と入力して現在のデータを取得します。
  2. コードの実行を続けるには、「s」コマンドを実行します。
  3. 非シングルステップ デバッグ
  4. 非シングルステップ デバッグは、ストアド プロシージャの実行時にブレークポイントを実行する方法です。次の手順に従って、非シングル ステップ デバッガーを有効にして使用できます。

ストアド プロシージャを定義する
  1. 繰り返しますが、最初にストアド プロシージャを定義する必要があります。非シングルステップでデバッグする方法を示します。以下は、単純なストアド プロシージャです。
DELIMITER $$
CREATE PROCEDURE simple_subtraction(i INT, j INT)
BEGIN
    DECLARE result INT;
    SET result = i - j;
    SELECT result;
END$$
DELIMITER ;
ログイン後にコピー

非シングルステップ デバッガーを有効にする
  1. 次のコマンドを使用して、非シングルステップ デバッガーを有効にできます。
CALL simple_subtraction(20, 30) debug_on_break;
ログイン後にコピー

ストアド プロシージャの実行時にブレークポイントに遭遇すると、MySQL は自動的に実行を停止します。

非シングルステップ デバッグの使用
  1. 非シングルステップ デバッガーを有効にすると、次のコマンドを使用してコードの実行を制御できます。

c: 実行が完了するかブレークポイントに到達するまでストアド プロシージャを実行します。
  • b: 現在行にブレークポイントを設定します。
  • r: ストアド プロシージャを再起動します。プロシージャ
  • p 式 :値または式の値を出力します。
  • これは、非シングルステップ デバッガを使用した例です。

実行ストアド プロシージャを作成し、3 行目にブレークポイントを設定します。 :
  1. CALL simple_subtraction(20, 30) debug_on_break(3);
    ログイン後にコピー
ブレークポイントが見つかるまでストアド プロシージャを実行します。:
  1. c;
    ログイン後にコピー
値を出力します。 「結果」変数の:
  1. p result;
    ログイン後にコピー
ブレークポイントの削除:
  1. b -3;
    ログイン後にコピー
ストアド プロシージャの再起動:
  1. r;
    ログイン後にコピー
概要
  1. MySQL は、シングルステップ デバッグや非シングルステップ デバッグなど、ストアド プロシージャをデバッグするためのさまざまな方法を提供します。これらのデバッガーを使用すると、さまざまなコマンドを使用してコードの実行を制御したり、変数や式の値を表示したりできます。複雑なストアド プロシージャを開発している場合、これらのデバッガは非常に便利なツールです。

以上がMySQL ストアド プロシージャをデバッグする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート