トップ   編集 凍結 差分 バックアップ 添付   新規   最終更新のRSS

mysql/ストアドプロシージャ登録方法

Last-modified: 2008-12-22 (月) 18:01:12 (15d)
Top / mysql / ストアドプロシージャ登録方法

ストアドプロシージャ登録方法

hello worldと表示するストアドプロシージャを作成する

mysqlクライアントを起動

CREATE ROUTINE、ALTER ROUTINE権限のあるユーザーでログインする。

# mysql -u [ユーザー名] -p

mysqlクライアントからストアドプロシージャを登録する。

mysqlクライアントから下記のコマンドを入力。

delimiter //
DROP PROCEDURE IF EXISTS `prc_hello_world`//
CREATE PROCEDURE `prc_hello_world`()
BEGIN
    SELECT 'a';
END
//
delimiter ;

登録結果

下記のように表示される。

mysql> delimiter //
mysql> DROP PROCEDURE IF EXISTS `prc_hello_world`//
Query OK, 0 rows affected (0.02 sec)

mysql> CREATE PROCEDURE `prc_hello_world`()
    -> BEGIN
    ->     SELECT 'hello world';
    -> END
    -> //
Query OK, 0 rows affected (0.00 sec)

mysql> delimiter ;

ストアドプロシージャを実行する

mysql> call prc_hello_world();

実行結果

hello worldが画面上に表示されればOK。

+--------------+
| hello world |
+--------------+
| hello world |
+--------------+
1 row in set (0.12 sec)

Query OK, 0 rows affected (0.12 sec)

ファイルから複数ストアドプロシージャを一括登録

ストアドプロシージャを記述したファイルを作成する

下記のように記述したprc.sqlを作成する。

delimiter //

DROP PROCEDURE IF EXISTS `prc_select_a`//
CREATE PROCEDURE `prc_select_a`()
BEGIN
    SELECT 'hellow world a';
END
//

DROP PROCEDURE IF EXISTS `prc_select_b`//
CREATE PROCEDURE `prc_select_b`()
BEGIN
    SELECT 'hellow world b';
END
//

DROP PROCEDURE IF EXISTS `prc_select_c`//
CREATE PROCEDURE `prc_select_c`()
BEGIN
    SELECT 'hellow world c';
END
//

delimiter ;

mysqlコマンドで登録

# mysql -u [ユーザー名] -p -B [データベース名] < prc.sql

登録後の確認

mysql> SHOW PROCEDURE STATUS;
+------+-----------------------------------------+-----------...
| Db   | Name                                    | Type      ...
+------+-----------------------------------------+-----------...
| www  | prc_select_a                            | PROCEDURE ...(略)
| www  | prc_select_b                            | PROCEDURE ...
| www  | prc_select_c                            | PROCEDURE ...
+------+-----------------------------------------+-----------...
3 rows in set (0.00 sec)

phpMyAdminで登録編集

登録方法

  • CREATE ROUTINE、ALTER ROUTINE権限のあるユーザーでログインする。
  • 「SQL」タブをクリック
  • 「デリミタ」に「//」と入力されていることを確認する。
  • コマンドから登録する際に使用した、delimiter構文は削除する。
  • 「実行する」ボタンをクリックすると登録完了。

編集方法

  • CREATE ROUTINE、ALTER ROUTINE権限のあるユーザーでログインする。
  • 登録したストアドプロシージャは「構造」タブのテーブル一覧の下のほうに表示されている。
  • 編集したいストアドプロシージャの「構造」ボタンをクリックすると編集画面へ遷移する。
  • 編集画面では、「デリミタ」が「//」と入力されていることを確認する。
  • 編集が終了したら「実行する」ボタンをクリックすると編集完了。
  編集