mysql存储过程中怎么进行跨库 *** 作?

mysql存储过程中怎么进行跨库 *** 作?,第1张

傻孩子, 你不能直接dbname.tablename 这样写, 你得先把他们concat起来, 因为他们是变量呀

set @s=concat('alter table ',concat(dbname, '.', dablename),' rename to ',concat(dbname, '.', tabletime

))

你创建一个存储过程C

先执行存储过程A,并得到返回值

再判断返回值执行存储过程B

例如:

mysql>\d //

mysql> create procedure test(v_name char(20),out v_id int)

-> BEGIN

->SELECT id into v_id from t1 WHERE name=v_name

->END

->//

mysql> create procedure test1(v_id int,out v_name char(20))

->BEGIN

->SELECT name into v_name from t2 where id=v_id

->END

->//

mysql>create procedure test2(inout v_name char(20))

->BEGIN

->DECLARE v_id int

->CALL test(v_name,v_id)

->CALL test1(v_id,v_name)

->END

->//

mysql>set @aa='xx‘//

Query OK, 0 rows affected (0.00 sec)

mysql>call test2(@aa) //

Query OK, 0 rows affected (0.01 sec)

mysql>select @aa//

+------+

| @aa |

+------+

| x2 |

+------+

1 row in set (0.00 sec)

1、存储过程定义:

存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程可以简化应用开发 人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。

2、特点:

封装,复用 : 可以把某一业务SQL封装在存储过程中,需要用到 的时候直接调用即可。

可以接收参数,也可以返回数据 :再存储过程中,可以传递参数,也可以接收返回 值。

减少网络交互,效率提升 : 如果涉及到多条SQL,每执行一次都是一次网络传 输。 而如果封装在存储过程中,我们只需要网络交互一次可能就可以了。

3、基本语法

(1)创建:

(2)调用:

(3)查看:

(4)删除

注意: 在命令行中,执行创建存储过程的SQL时,需要通过关键字 delimiter 指定SQL语句的 结束符。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6779916.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存