いつも忘れるので備忘録。
環境
- Ubuntu 20.04
- MariaDB Server version: 10.3.31-MariaDB-0ubuntu0.20.04.1 Ubuntu 20.04
ストアドプロシージャ
一覧確認
SHOW PROCEDURE STATUS;
または
SHOW PROCEDURE STATUS \G
名前だけ確認するには
SELECT ROUTINE_NAME FROM information_schema.ROUTINES WHERE ROUTINE_TYPE = 'PROCEDURE' AND ROUTINE_SCHEMA=("データベース名");
作成
DELIMITER //
CREATE PROCEDURE ストアドプロシージャ名( IN input TEXT )
BEGIN
SELECT * FROM 会員 WHERE 会員番号=input;
END//
DELIMITER ;
内容確認
SHOW CREATE PROCEDURE ストアドプロシージャ名;
実行
CALL ストアドプロシージャ名("123-4567");
削除
DROP PROCEDURE ストアドプロシージャ名;
ストアドファンクション
一覧確認
SHOW FUNCTION STATUS;
または
SHOW FUNCTION STATUS \G
名前だけ確認するには
SELECT ROUTINE_NAME FROM information_schema.ROUTINES WHERE ROUTINE_TYPE = 'FUNCTION' AND ROUTINE_SCHEMA="(データベース名)";
作成
DELIMITER //
CREATE FUNCTION ストアドファンクション名(_会員番号 TEXT) RETURNS INT NOT DETERMINISTIC
BEGIN
DECLARE _アクセス年 INT ;
SELECT アクセス年 INTO _アクセス年 FROM アクセス記録 WHERE 会員番号=_会員番号;
IF _アクセス年 = 2021 THEN RETURN 1;
ELSE RETURN 0;
END IF;
END//
DELIMITER ;
内容確認
SHOW CREATE FUNCTION ストアドファンクション名;
実行
SELECT ストアドファンクション名("123-4567");
+---------------------------------+
| ストアドファンクション名("123-4567") |
+---------------------------------+
| 1 |
+---------------------------------+
1 row in set (0.009 sec)
削除
DROP FUNCTION ストアドファクション名;