当前位置:  开发笔记 > 编程语言 > 正文

是否可以从另一个sql脚本中的存储过程调用sql脚本?

如何解决《是否可以从另一个sql脚本中的存储过程调用sql脚本?》经验,为你挑选了1个好方法。

我想用.从存储过程中调用sql脚本就像这样...

delimiter ///
create procedure append_procedure()
BEGIN
\. test.sql;    
END; ///
delimiter ;

我得到了"未能打开'test.sql;' "我以这种方式运行时出错.我也试过了!但后来我得到了一个拒绝许可的错误.但是,我无法消除; 或者整件事都破了.有没有解决的办法?

我究竟做错了什么?



1> Bill Karwin..:

有一组内置于mysql客户端的命令.它们记录在" mysql命令 " 下.这些包括DELIMITER,SOURCE,HELP,CONNECT,USE,QUIT等.

\.(或SOURCE)命令是这些建宏之一. 您不能以编程方式执行这些内置命令,也不能在存储过程中执行这些内置命令.

这就像尝试使用C语言运行内置的UNIX shell execl().

一个不同的类比可能是在Web浏览器中,您可以在其中键入about:由浏览器应用程序本身处理的特殊请求,如" "; 这些不会导致对远程网站的任何HTTP请求.

此外,如果您可以从存储过程中获取脚本,那将无济于事,因为脚本本身可能包含一堆mysql客户端内置的命令,因此无法由存储过程运行.


另见我对这些相关问题的回答:

在PHP中运行MySQL*.sql文件

从PHP中加载.sql文件

PHP:一个mysql_query语句中的多个SQL查询

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有