能否在非mysql.proc的其他Schema中创建MariaDB存储过程?
在MariaDB 11.1.4中于mysql.proc以外的Schema创建存储过程的可行性说明
完全可以在**自定义Schema(数据库)**中创建存储过程,mysql.proc只是MariaDB用来存储所有存储过程元数据的系统表,并非存储过程的实际所属Schema。
具体相关信息如下:
- 创建方式:在
CREATE PROCEDURE语句中明确指定目标Schema即可,示例代码:
-- 先确保目标Schema已存在 CREATE DATABASE IF NOT EXISTS my_custom_schema; -- 在自定义Schema下创建存储过程 CREATE PROCEDURE my_custom_schema.get_user_count() BEGIN SELECT COUNT(*) AS user_count FROM my_custom_schema.users; END;
- 查看与调用:创建完成后,可通过以下方式确认或调用:
-- 查看指定Schema下的存储过程列表 SHOW PROCEDURE STATUS WHERE Db = 'my_custom_schema'; -- 调用自定义Schema下的存储过程 CALL my_custom_schema.get_user_count(); - 权限要求:执行创建操作的账号需要拥有目标Schema的
CREATE ROUTINE权限,调用时需要对应Schema的EXECUTE权限。
简单来说,mysql.proc只是记录存储过程的元信息(比如所属Schema、定义语句、权限等),存储过程的实际归属和运行上下文由创建时指定的Schema决定,完全不需要局限在mysql系统Schema下。
内容的提问来源于stack exchange,提问作者ChangshinKang
相关产品推荐
相关产品推荐

