mysql从过程调用另一个过程(另一个模式的)

标签 mysql sql mysql-workbench

我想从 SP2 调用 SP1。 SP1 存储在同一台 PC 上的另一个数据库架构中。 请检查以下片段

    CREATE DEFINER=`root`@`localhost`  PROCEDURE `db2`.`sp2_procedure` ()
BEGIN
    call sp1_procedure(50);
END

还尝试调用 db1.sp1_procedure(50); 是我调用错误还是无法调用其他架构的 SP

注意::SP - 存储过程

最佳答案

您可以简单地做到这一点,只需在前缀中提及架构名称即可。

例如:

CREATE DEFINER=`root`@`localhost` PROCEDURE `db1`.`sp1`()
BEGIN
select 'I am procedure from another db';
END

下一步,

CREATE DEFINER=`root`@`localhost` PROCEDURE `db2`.`sp2`()
BEGIN
call db1.sp1();
END

并这样调用它:

use db2;
call `db2`.sp2();

关于mysql从过程调用另一个过程(另一个模式的),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18273661/

相关文章:

sql - 如何让 CLSQL 在非标准目录中查找 mysql.h?

MySQL 通知程序 : Error subscribing to WMI Events: RPC_E_CALL_CANCELLED. 异常 HRESULT:0x80010002

mysql - 如何永久禁用 MySQL 8 中的列统计信息?

mysql - 如何在 MySQL Workbench 中创建和执行过程

php - 提高MySQL查询速度

mysql - 有效地存储每个项目的最后 X 条记录

sql - 在SQL Server中创建临时表是否需要使用#?

php - 处理 SQL 字符串中的引号和命令

php - 内存 PHP/MySQL 函数

mysql - MySQL 错误 1215