对具有相同模式名称的多个数据库使用 mysql 函数

Posted

技术标签:

【中文标题】对具有相同模式名称的多个数据库使用 mysql 函数【英文标题】:use mysql functions for multiple databases with same pattern name 【发布时间】:2013-12-27 16:31:43 【问题描述】:

我可以导入 mysql 函数并将其用于具有相同模式名称的多个数据库而不再导入该函数吗?

我知道Mysql在两个表中保存函数:

information_schema.ROUTINESmysql.proc

有人有这个想法吗?

【问题讨论】:

【参考方案1】:

每个存储过程都与其schemadatabase 相关联。 只要 SP 只是例程而不依赖于表数据,就可以从任何地方愉快地调用它们。

如果 SP 旨在基于表数据进行计算,那么在定义 SP 主体时肯定需要 database 限定符。 IE。而不是打电话select count(*) from routines;, 您需要致电select count(*) from information_schema.routines;

如果您查看routinesproc 的表结构,您可以找到分别指向SP 的目标数据库的列routine_schemadb

除非您以这种方式定义与表数据相关的 SP 体 你肯定必须在你的数据库环境中重新定义它们。

更重要的是,您再次需要权限才能访问执行这样的跨数据库 SP。

【讨论】:

以上是关于对具有相同模式名称的多个数据库使用 mysql 函数的主要内容,如果未能解决你的问题,请参考以下文章

PHP:具有不同名称的多个按钮以使用 AJAX 更新 MySQL 数据库

为啥 PDO 不允许具有相同名称的多个占位符?

自动创建一个视图,该视图将所有其他具有相同名称但不同前缀和不同模式的视图联合起来

创建多个具有相同名称的类对象? C++

MySQL数据库列具有多个值

将awk模式应用于具有相同名称的所有文件,将每个文件输出到新文件