MySQL Workbench を使ったストアドプロシージャの作成方法

この資料では、MySQL 管理用の GUI ツールである MySQL Workbench を利用して、 簡単なストアドプロシージャを作成し、それを呼出す方法を示します。

MySQL Workbench だからといって、特に特別なことをするわけでもありませんが、 いくつか知っていないとつまずいてしまうポイントがありますので、そうした点について説明します。

MySQL Workbench とは?

まず、MySQL Workbench とは何か?ということですが、これは MySQL の管理、 および MySQL 上での開発をサポートするための GUI ツール群といえます。 以前、MySQL Administrator とか MySQL Query Browser という GUI ツールがありましたが、 それらが統合されてさらに機能強化されたものとみてよいと思います。

と、MySQL Workbench についてはフリーで入手できますのでダウンロードしてインストールしておいてください。 ここでは MySQL のストアド・プロシージャを作る方法を紹介します。

MySQL ストアド・プロシージャの作成と動作確認

まず前提として、ここでは testdb というスキーマ (データベース) を作り、 そこに employees というテーブルを作成しました。そして、その中に適当に三つレコードを作りました。

employees テーブルのデータを SELECT すると次のようになります。

MySQL Workbench を使ったストアドプロシージャの作成方法

この SELECT 文と同様の結果を返すストアドプロシージャを作成してみましょう。

File メニューから New Script Tab を選択します。するとスクリプトの入力エリアが表示されます。 ここに以下のスクリプトを記述します。

DELIMITER $$

DROP PROCEDURE IF EXISTS testproc1$$

CREATE PROCEDURE testproc1()
BEGIN
    SELECT * FROM employees;
END$$

DELIMITER ;

ここでは testproc1 という名前のストアドプロシージャを作成します。もし既に存在しているときは削除する、というコードになってますので、 既存のスキーマを利用するときは必要なプロシージャを消さないように気をつけてください。

コードのポイントは、DELIMITER を変更するところです。

MySQL のステートメントのデフォルトのデリミタは ; (セミコロン) なのですが、 ストアドプロシージャのボディ部分に、プロシージャ本体内部のステートメント区切りとして ; が入ってきますので、 いったん $$ などに変更してプロシージャを記述しています。

ちなみに MySQL Workbench の画面では次のようになります。

MySQL Workbench を使ったストアドプロシージャの作成方法

この状態で SQL の実行ボタンをクリックすると、ストアドプロシージャが作成されます。

もうひとつスクリプトタブを開き、今作ったプロシージャを実行しましょう。 ストアドプロシージャの実行には CALL を使います。

MySQL Workbench を使ったストアドプロシージャの作成方法

上のスクリーンショットのように、実行結果のレコードが表示されれば成功です。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Web/DB プログラミング徹底解説