我可以导入Mysql函数并将其用于具有相同模式名称的多个数据库而不再导入该函数吗?
我知道两个表中的Mysql保存功能:
information_schema.ROUTINES
和mysql.proc
有人有想法这样做吗?
答案 0 :(得分:0)
每个存储过程都与其schema
或database
相关联
只要SP只是例程但不依赖于表数据,人们可以愉快地从任何地方调用它们。
如果SP打算根据表数据进行计算,那么在定义SP体时,您肯定需要database
限定符。
即而不是打电话
select count(*) from routines;
,
你需要打电话给
select count(*) from information_schema.routines;
。
如果查看routines
和proc
的表结构,您可以分别找到指向SP的目标数据库的列routine_schema
和db
。
除非您以这种方式定义与表数据相关的SP实体 你必须在数据库环境中重新定义它们。
更重要的是,您再次需要访问和执行此类跨数据库SP的权限。