mysqlでストアドプロシージャ
2012/09/22
mysql
sql
ストアド
mysqlでストアドです。
まずストアドプロシージャのリストを表示は以下で
show procedure status;
参考
- List of Stored Procedures/Functions Mysql Command Line - Stack Overflow
- MySQL :: MySQL 5.1 リファレンスマニュアル :: 12.5.4.23 SHOW PROCEDURE STATUS と SHOW FUNCTION STATUS 構文
まずひながた、これはコマンドに流すsqlを想定しています。
作成してストアドを作成して実行して、実行したプロシージャを削除するというふうにしてます。
実行は以下
$ mysql5 -u root work < test.sql
ひながた。
delimiterの必要性がいまいちわかってないけど。で、以下のコードは信頼性という意味ではちとまずくて、createできて、実行時にエラーがでるとcreateしっぱなしなので、一番最後のdrop procedureが効かないです。
DROP PROCEDURE IF EXISTS p;
delimiter //
CREATE PROCEDURE p()
BEGIN
SELECT * FROM c;
END
//
CALL p();-- ここで実行
DROP PROCEDURE IF EXISTS p;
delimiter //
CREATE PROCEDURE p()
BEGIN
SELECT * FROM c;
END
//
CALL p();-- ここで実行
DROP PROCEDURE IF EXISTS p;
参考
oracle 3.2.3 ストアド・プロシージャでのエラー処理
: