2009年4月23日木曜日

MySQL のストアドプロシージャ

MySQL のストアドプロシージャを利用するためのコマンド類。
-- 区切り文字を変更する
-- ※スクリプト中のセンテンスの終了に「;」を使用するため、変更する。
DELIMITER //

-- ストアドプロシージャの作成
CREATE PROCEDURE my_proc1()
BEGIN 
  SELECT my_id, my_name FROM my_table;
END
//

-- ストアドプロシージャの呼び出し
CALL my_proc1()
//

-- 戻り値つきストアドプロシージャ
CREATE PROCEDURE my_proc2(OUT param1 INT)
BEGIN
  SELECT COUNT(*) INTO param1 FROM my_table;
END
//

-- 戻り値つきストアドプロシージャの呼び出し
CALL my_proc2(@a)
//

-- 戻り値の確認
SELECT @a

-- 引数つきストアドプロシージャ
-- 文字列を結合する
CREATE PROCEDURE my_proc3(IN param1 VARCHAR(50), OUT param2 VARCHAR(50))
BEGIN 
  SELECT CONCAT('Hello, ', param1,'!') INTO param2;
END
//

-- 引数つきストアドプロシージャの呼び出し
CALL my_proc3('world', @a)
//

-- 作成したプロシージャの確認
SHOW PROCEDURE STATUS
//

-- 作成したプロシージャの内容確認
SHOW CREATE PROCEDURE my_proc1
//

-- 作成したプロシージャの削除
DROP PROCEDURE my_proc1
//


0 件のコメント:

コメントを投稿