【MySQL】ストアド ~ 入門編 ~

【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