mysql/ストアドプロシージャ登録方法
Last-modified: 2009-04-01 (水) 23:22:40 (342d)
ストアドプロシージャ登録方法 †
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 'hello world';
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 データベース名 < 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権限のあるユーザーでログインする。
- 登録したストアドプロシージャは「構造」タブのテーブル一覧の下のほうに表示されている。
- 編集したいストアドプロシージャの「構造」ボタンをクリックすると編集画面へ遷移する。
- 編集画面では、「デリミタ」が「//」と入力されていることを確認する。
- 編集が終了したら「実行する」ボタンをクリックすると編集完了。