是否可以从另一个sql脚本中的存储过程中调用sql脚本? [英] is it possible to call a sql script from a stored procedure in another sql script?

查看:158
本文介绍了是否可以从另一个sql脚本中的存储过程中调用sql脚本?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用.像这样从存储的proc内部调用sql脚本...

I'd like to use . to call sql script from inside a stored proc like so...

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

我收到无法打开'test.sql;'的消息"我以这种方式运行时出错.我也尝试过!但随后出现权限被拒绝的错误.但是,我无法消除;;或整个事情坏了.有办法解决吗?

I'm getting a "failed to open 'test.sql;' " error when I run it this way. I've also tried ! but then I get a permission denied error. However, I can't eliminate the ; or the whole thing is broken. Is there a way around this?

我在做什么错了?

推荐答案

mysql客户端内置了一组命令.它们记录在" mysql命令 ."其中包括DELIMITER,SOURCE,HELP,CONNECT,USE,QUIT等.

There is a set of commands that are builtin to the mysql client. They're documented under "mysql Commands." These include DELIMITER, SOURCE, HELP, CONNECT, USE, QUIT, etc.

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

The \. (or SOURCE) command is one of these builtins. You can't execute these builtin commands programmatically, nor from within a stored procedure.

这就像尝试使用execl()从C程序运行内置的UNIX shell.

It'd be like trying to run a UNIX shell builtin from a C program using execl().

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

A different analogy might be in a web browser, where you can type in special requests like "about:" that are handled by the browser app itself; these don't result in any HTTP request to a remote web site.

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

Also, it wouldn't help if you could source a script from within a stored procedure, because the script itself likely contains a bunch of commands that are mysql client builtins, and thus cannot be run by the stored proc.

另请参阅我对这些相关问题的回答:

See also my answers to these related questions:

  • Running MySQL *.sql files in PHP
  • Loading .sql files from within PHP
  • PHP: multiple SQL queries in one mysql_query statement

这篇关于是否可以从另一个sql脚本中的存储过程中调用sql脚本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆