【1】ストアドプロシージャ
* CREATE PROCEDURE を使う
1)定義
delimiter // CREATE PROCEDURE `give_hello` (OUT result VARCHAR(30)) COMMENT 'Hello World! for stored procedure.' LANGUAGE SQL BEGIN SELECT COUNT(*) FROM customer INTO result; END; //
実行例
CALL give_hello(@value); SELECT @value; -- 出力結果 6
2)変更
DELIMITER // ALTER PROCEDURE give_hello() BEGIN -- 変更するSQL内容 END; //
3)削除
DROP PROCEDURE give_hello;
【2】ストアドファンクション
* CREATE FUNCTION を使う
1)定義
delimiter // CREATE FUNCTION `say_hello` (your_name VARCHAR(30)) RETURNS VARCHAR(50) DETERMINISTIC COMMENT 'Hello World! for stored function.' LANGUAGE SQL BEGIN RETURN CONCAT('Hello, ', your_name, '!'); END; //
実行例
SELECT say_hello('World'); -- 出力結果 Hello, World!
【3】PREPARE 構文
1)定義
PREPARE 【名前】 FROM 【SQL文】
2)実行
EXECUTE 【名前】
3)解放処理
DEALLOCATE PREPARE 【名前】
参考文献
公式サイト
https://dev.mysql.com/doc/refman/5.6/ja/create-procedure.html
PREPARE 構文
https://dev.mysql.com/doc/refman/5.6/ja/prepare.html
一般サイト
https://qiita.com/nature_boy99/items/6f314753320fd67360b0
関連記事
ストアド ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2010/08/06/112528