1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

MariaDB / MySQL のストアドプロシージャ/ストアドファンクション

Last updated at Posted at 2021-09-05

いつも忘れるので備忘録。

環境

  • 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 ストアドファクション名;
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?