仅在 MySQL 中显示特定数据库的函数和过程
Posted
技术标签:
【中文标题】仅在 MySQL 中显示特定数据库的函数和过程【英文标题】:Show Functions and Procedures for a specific database only in MySQL 【发布时间】:2018-08-31 09:39:06 【问题描述】:每当我执行SHOW PROCEDURE STATUS
或SHOW FUNCTION STATUS
时,引擎都会向我显示我所有数据库中的过程和函数,而不是我当前连接的那个。
有没有办法仅从一个特定的数据库中列出和/或检索有关过程和函数的信息?例如,如果我在数据库“People”中,我希望查询只显示该数据库中存在的函数和过程。
【问题讨论】:
【参考方案1】:您可以以更具体的方式使用它们
SHOW PROCEDURE STATUS WHERE Db = 'databasename';
SHOW FUNCTION STATUS WHERE Db = 'databasename';
【讨论】:
天哪,我现在感觉好蠢……我简直不敢相信我错过了“Db”列。在问这里之前应该喝过我的咖啡。困的时候我应该远离电脑。【参考方案2】:SELECT routine_name,ROUTINE_SCHEMA
FROM INFORMATION_SCHEMA.Routines
WHERE ROUTINE_SCHEMA LIKE 'mydb';
您可以通过here找到更多信息。
【讨论】:
【参考方案3】:如果您的用户有权访问 mysql
架构,即引擎/系统..您可以试试这个:
-- display function/procedure details
SELECT db, name, type,
security_type, definer,
created, modified
FROM mysql.proc
-- filter out system function/procedure
WHERE db != 'sys'
AND db = 'your_chosen_database'
ORDER BY type, db;
【讨论】:
以上是关于仅在 MySQL 中显示特定数据库的函数和过程的主要内容,如果未能解决你的问题,请参考以下文章