加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 存储过程可以使用两个不同的数据库吗?两台服务器怎么样

发布时间:2020-12-12 16:32:00 所属栏目:MsSql教程 来源:网络整理
导读:我想知道 MySQL的存储过程是否可以在同一台机器上使用两个不同的数据库?如果他们在不同的服务器上呢? 解决方法 如果我们在同一个服务器上讨论两个数据库:是的,存储过程可以访问另一个数据库.您必须确保正在运行该过程的权限的用户对每个数据库具有必要的权
我想知道 MySQL的存储过程是否可以在同一台机器上使用两个不同的数据库?如果他们在不同的服务器上呢?

解决方法

如果我们在同一个服务器上讨论两个数据库:是的,存储过程可以访问另一个数据库.您必须确保正在运行该过程的权限的用户对每个数据库具有必要的权限.

例如,假设您在同一服务器mydb1和mydb2上有两个数据库,并且每个包含一个名为具有相同结构的消息的表.假设要将存储过程添加到mydb2中,将mydb2中的消息表清空,并复制mydb1中消息表的内容.你可以这样做:

CREATE PROCEDURE `SynchroniseMessages` ()
LANGUAGE SQL
NOT DETERMINISTIC
MODIFIES SQL DATA
SQL SECURITY DEFINER
BEGIN

DELETE FROM `mydb2`.`messages`;

INSERT INTO
    `mydb2`.`messages`
    SELECT * FROM `mydb1`.`messages`;

END

看看我如何完全限定这些表与他们所属的数据库.实际上你可以说我在这里过热,因为我们指定这个存储过程将属于mydb2.我不需要添加mydb2.预选赛.如果存储过程在mydb1数据库中,我将需要这些限定符,但反过来我不需要mydb1.出现在哪里

为了能够运行此过程(可能为了能够定义它),我需要确保我的用户对mydb2具有DELETE和INSERT权限,以及mydb1上的SELECT权限.

不同服务器上的数据库听起来更复杂.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读